package org.globus.progtutorial.services.core.core_sd.impl;

import org.globus.ogsa.GridServiceBase;
import org.globus.ogsa.GridServiceException;
import org.globus.ogsa.OperationProvider;

import java.rmi.RemoteException;
import javax.xml.namespace.QName;
import java.lang.reflect.Method;


import org.codehaus.aspectwerkz.*;
import org.codehaus.aspectwerkz.xmldef.introduction.*;

public class MathProvider implements OperationProvider
{
    // Operation provider properties
    private static final String namespace = "http://www.globus.org/namespaces/2004/02/progtutorial/MathService_sd_notif";
    private static final Method[] prov = ((Introduction)SystemLoader.getSystem("samples-xmldef").getMixin("provider")).getMethods();
    private static final QName[] operations = new QName[prov.length];
    private GridServiceBase base;

    public MathProvider(){
        for(int i=0; i<prov.length;i++)
            operations[i]=new QName(namespace,prov[i].getName());
    }

    public void initialize(GridServiceBase base) throws GridServiceException{
        this.base = base;
    }

    public QName[] getOperations(){
        return operations;
    }
    public GridServiceBase getBase(){
    return base;
    }

}