Package de.FeatureModellingTool.FeatureModel

Source Code of de.FeatureModellingTool.FeatureModel.Manager

package de.FeatureModellingTool.FeatureModel;

import java.util.Hashtable;

import manager.IllegalParameterException;
import manager.ManagerInterface;

import component.FComponent;

import context.Context;
import de.FeatureModellingTool.Customize.CustomizationModel;
import de.FeatureModellingTool.Customize.CustomizationModelImplementation;

/**
* author: zhangwei
* Date: 2003-5-24
* Time: 19:55:09
*/
public final class Manager implements ManagerInterface{

    public static FeatureModel createFeatureModel(String name, String description) {
        FeatureModelImplementation fmi = new FeatureModelImplementation();
        fmi.getFeatureModelPropertyEditor().setName(name);
        fmi.getFeatureModelPropertyEditor().setDescription(description);
        return fmi;
    }

    public static FeatureEditor getFeatureEditor(FeatureModel featureModel) {
        if (!FeatureModelImplementation.class.isInstance(featureModel))
            return null;

        FeatureModelImplementation fmi = (FeatureModelImplementation) featureModel;

        return fmi.getFeatureEditor();
    }

    public static FeatureModelEditor getFeatureModelEditor(FeatureModel featureModel) {
        if (!FeatureModelImplementation.class.isInstance(featureModel))
            return null;

        FeatureModelImplementation fmi = (FeatureModelImplementation) featureModel;

        return fmi.getFeatureModelEditor();
    }

    public static FeatureModelPropertyEditor getFeatureModelPropertyEditor(FeatureModel featureModel) {
        if (!FeatureModelImplementation.class.isInstance(featureModel))
            return null;

        FeatureModelImplementation fmi = (FeatureModelImplementation) featureModel;

        return fmi.getFeatureModelPropertyEditor();

    }

    public static FeatureRelationManager getFeatureRelationManager(FeatureModel featureModel) {
        if (!FeatureModelImplementation.class.isInstance(featureModel))
            return null;

        FeatureModelImplementation fmi = (FeatureModelImplementation) featureModel;

        return fmi.getFeatureRelationManager();
    }

    public static ConstraintModel getConstraintModel(FeatureModel featureModel) {
        if (!FeatureModelImplementation.class.isInstance(featureModel))
            return null;

        return new ConstraintModelImplementation(featureModel);
    }

    public static ConstraintModelEditor getConstraintModelEditor(ConstraintModel constraintModel) {
        if (!ConstraintModelImplementation.class.isInstance(constraintModel))
            return null;

        ConstraintModelImplementation cmi = (ConstraintModelImplementation) constraintModel;

        return cmi.getConstraintModelEditor();
    }

    public static CompositeConstraintEditor getPLConstraintEditor(ConstraintModel constraintModel) {
        if (!ConstraintModelImplementation.class.isInstance(constraintModel))
            return null;

        ConstraintModelImplementation cmi = (ConstraintModelImplementation) constraintModel;

        return cmi.getPLConstraintEditor();
    }

    public static GroupConstraintEditor getGroupConstraintEditor(ConstraintModel constraintModel) {
        if (!ConstraintModelImplementation.class.isInstance(constraintModel))
            return null;

        ConstraintModelImplementation cmi = (ConstraintModelImplementation) constraintModel;

        return cmi.getGroupConstraintEditor();
    }

    public static VPConstraintEditor getVPConstraintEditor(ConstraintModel constraintModel) {
        if (!ConstraintModelImplementation.class.isInstance(constraintModel))
            return null;

        ConstraintModelImplementation cmi = (ConstraintModelImplementation) constraintModel;

        return cmi.getVPConstraintEditor();
    }

    public static ResourceComponentEditor getResourceComponentEditor(InteractionModel interactionModel){
        if (!InteractionModelImplementation.class.isInstance(interactionModel))
            return null;

        InteractionModelImplementation imi = (InteractionModelImplementation) interactionModel;

        return imi.getResourceComponentEditor();
    }

    public static InteractionModel getInteractionModel(FeatureModel featureModel){
        if (!FeatureModelImplementation.class.isInstance(featureModel))
            return null;

        return new InteractionModelImplementation(featureModel);
    }

    public static InteractionEditor getInteractionEditor(InteractionModel interactionModel){
        if (!InteractionModelImplementation.class.isInstance(interactionModel))
            return null;

        InteractionModelImplementation imi = (InteractionModelImplementation) interactionModel;

        return imi.getInteractionEditor();
    }

    public static InteractionModelEditor getInteractionModelEditor(InteractionModel interactionModel){
        if (!InteractionModelImplementation.class.isInstance(interactionModel))
            return null;

        InteractionModelImplementation imi = (InteractionModelImplementation) interactionModel;

        return imi.getInteractionModelEditor();
    }

    //gh start
    public static CustomizationModel getCustomizationModel(FeatureModel featureModel) {
        if (!FeatureModelImplementation.class.isInstance(featureModel))
            return null;

        return new CustomizationModelImplementation(featureModel);
   }
    //gh end
   
    public final static String FEATURE_MODEL_NAME = "FeatureModel";

    public final static String FEATURE_MODEL_INTERFACE = "FeatureModel";
    public final static String FEATURE_EDITOR_INTERFACE = "FeatureEditor";
    public final static String FEATURE_MODEL_EDITOR_INTERFACE = "FeatureModelEditor";
    public final static String FEATURE_MODEL_PROPERTY_EDITOR_INTERFACE = "FeatureModelPropertyEditor";
    public final static String FEATURE_RELATION_MANAGER_INTERFACE = "FeatureRelationManager";

    public final static String CONSTRAINT_MODEL_INTERFACE = "ConstraintModel";
    public final static String CONSTRAINT_MODEL_EDITOR_INTERFACE = "ConstraintModelEditor";
    public final static String PL_CONSTRAINT_EDITOR_INTERFACE = "CompositeConstraintEditor";
    public final static String GROUP_CONSTRAINT_EDITOR_INTERFACE = "GroupConstraintEditor";
    public final static String VP_CONSTRAINT_EDITOR_INTERFACE = "VPConstraintEditor";

    public final static String RESOURCE_COMPONENT_EDITOR_INTERFACE = "ResourceComponentEditor";
    public final static String INTERACTION_MODEL_INTERFACE = "InteractionModel";
    public final static String INTERACTION_EDITOR_INTERFACE = "InteractionEditor";
    public final static String INTERACTION_MODEL_EDITOR_INTERFACE = "InteractionModelEditor";

    //gh start
    public final static String CUSTOMIZATION_MODEL_INTERFACE = "CustomizationModel";
    //gh end
   
    public final static String NAME_CONTEXT = "name";
    public final static String DESCRIPTION_CONTEXT = "description";

    public static ManagerInterface getInstance(){
        return new Manager();
    }

    protected Context cont = null;

    protected Manager(){
        if (cont == null) {
            try {
                cont = (Context) context.Manager.getInstance().getInstance(context.Manager.CONTEXT, Context.class);
            } catch (IllegalParameterException ipe) {
                //nerver arrive here
            }
        }
    }

    public Context getContext() {
        return cont;
    }

    public Object getInstance(String name, Class type) throws IllegalParameterException
    {
        if((!FEATURE_MODEL_NAME.equals(name))||(!FComponent.class.equals(type)))
            throw new IllegalParameterException("IllegalParameterException");

        String modelName = (String) getContext().getValue(NAME_CONTEXT);
        String modelDesp = (String) getContext().getValue(DESCRIPTION_CONTEXT);

        FeatureModel featureModel;
        FeatureEditor featureEditor;
        FeatureModelEditor featureModelEditor;
        FeatureModelPropertyEditor featureModelPropertyEditor;
        FeatureRelationManager featureRelationManager;

        ConstraintModel constraintModel;
        ConstraintModelEditor constraintModelEditor;
        CompositeConstraintEditor plConstraintEditor;
        GroupConstraintEditor gConstraintEditor;
        VPConstraintEditor vpConstraintEditor;

        ResourceComponentEditor resourceComponentEditor;
        InteractionModel interactionModel;
        InteractionEditor interactionEditor;
        InteractionModelEditor interactionModelEditor;

        featureModel = createFeatureModel(modelName, modelDesp);
        featureEditor = getFeatureEditor(featureModel);
        featureModelEditor = getFeatureModelEditor(featureModel);
        featureModelPropertyEditor = getFeatureModelPropertyEditor(featureModel);
        featureRelationManager = getFeatureRelationManager(featureModel);

        constraintModel = getConstraintModel(featureModel);
        constraintModelEditor = getConstraintModelEditor(constraintModel);
        plConstraintEditor = getPLConstraintEditor(constraintModel);
        gConstraintEditor = getGroupConstraintEditor(constraintModel);
        vpConstraintEditor = getVPConstraintEditor(constraintModel);

        interactionModel = getInteractionModel(featureModel);
        resourceComponentEditor = getResourceComponentEditor(interactionModel);
        interactionEditor = getInteractionEditor(interactionModel);
        interactionModelEditor = getInteractionModelEditor(interactionModel);

        Hashtable interfaces = new Hashtable();
        Hashtable classes = new Hashtable();

        interfaces.put(FEATURE_MODEL_INTERFACE, featureModel);
        interfaces.put(FEATURE_EDITOR_INTERFACE, featureEditor);
        interfaces.put(FEATURE_MODEL_EDITOR_INTERFACE, featureModelEditor);
        interfaces.put(FEATURE_MODEL_PROPERTY_EDITOR_INTERFACE, featureModelPropertyEditor);
        interfaces.put(FEATURE_RELATION_MANAGER_INTERFACE, featureRelationManager);

        interfaces.put(CONSTRAINT_MODEL_INTERFACE, constraintModel);
        interfaces.put(CONSTRAINT_MODEL_EDITOR_INTERFACE, constraintModelEditor);
        interfaces.put(PL_CONSTRAINT_EDITOR_INTERFACE, plConstraintEditor);
        interfaces.put(GROUP_CONSTRAINT_EDITOR_INTERFACE, gConstraintEditor);
        interfaces.put(VP_CONSTRAINT_EDITOR_INTERFACE, vpConstraintEditor);

        interfaces.put(INTERACTION_MODEL_INTERFACE, interactionModel);
        interfaces.put(RESOURCE_COMPONENT_EDITOR_INTERFACE, resourceComponentEditor);
        interfaces.put(INTERACTION_EDITOR_INTERFACE, interactionEditor);
        interfaces.put(INTERACTION_MODEL_EDITOR_INTERFACE, interactionModelEditor);

        classes.put(FEATURE_MODEL_INTERFACE, FeatureModel.class);
        classes.put(FEATURE_EDITOR_INTERFACE, FeatureEditor.class);
        classes.put(FEATURE_MODEL_EDITOR_INTERFACE, FeatureModelEditor.class);
        classes.put(FEATURE_MODEL_PROPERTY_EDITOR_INTERFACE, FeatureModelPropertyEditor.class);
        classes.put(FEATURE_RELATION_MANAGER_INTERFACE, FeatureRelationManager.class);

        classes.put(CONSTRAINT_MODEL_INTERFACE, ConstraintModel.class);
        classes.put(CONSTRAINT_MODEL_EDITOR_INTERFACE, ConstraintModelEditor.class);
        classes.put(PL_CONSTRAINT_EDITOR_INTERFACE, CompositeConstraintEditor.class);
        classes.put(GROUP_CONSTRAINT_EDITOR_INTERFACE, GroupConstraintEditor.class);
        classes.put(VP_CONSTRAINT_EDITOR_INTERFACE, VPConstraintEditor.class);

        classes.put(INTERACTION_MODEL_INTERFACE, InteractionModel.class);
        classes.put(INTERACTION_EDITOR_INTERFACE, InteractionEditor.class);
        classes.put(RESOURCE_COMPONENT_EDITOR_INTERFACE, ResourceComponentEditor.class);
        classes.put(INTERACTION_MODEL_EDITOR_INTERFACE, InteractionModelEditor.class);
       
        //gh start
        CustomizationModel CustomizationModel = getCustomizationModel(featureModel);
        interfaces.put(CUSTOMIZATION_MODEL_INTERFACE, CustomizationModel);
        classes.put(CUSTOMIZATION_MODEL_INTERFACE, CustomizationModel.class);
        //gh end

        ManagerInterface mi = component.Manager.getInstance();

        mi.getContext().putValue(component.Manager.INTERFACES, interfaces);
        mi.getContext().putValue(component.Manager.CLASSES, classes);
        mi.getContext().putValue(component.Manager.NAME, FEATURE_MODEL_NAME);

        try {
            return (FComponent) mi.getInstance(component.Manager.NGOBJECT, FComponent.class);
        }
        catch(IllegalParameterException ipe){
            return null;
        }
    }
}
TOP

Related Classes of de.FeatureModellingTool.FeatureModel.Manager

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.