TMapComponents.java :  » IDE-Netbeans » xml » org » netbeans » modules » xslt » tmap » model » impl » Java Open Source

Java Open Source » IDE Netbeans » xml 
xml » org » netbeans » modules » xslt » tmap » model » impl » TMapComponents.java
/*
 * The contents of this file are subject to the terms of the Common Development
 * and Distribution License (the License). You may not use this file except in
 * compliance with the License.
 * 
 * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
 * or http://www.netbeans.org/cddl.txt.
 * 
 * When distributing Covered Code, include this CDDL Header Notice in each file
 * and include the License file at http://www.netbeans.org/cddl.txt.
 * If applicable, add the following below the CDDL Header, with the fields
 * enclosed by brackets [] replaced by your own identifying information:
 * "Portions Copyrighted [year] [name of copyright owner]"
 * 
 * The Original Software is NetBeans. The Initial Developer of the Original
 * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
 * Microsystems, Inc. All Rights Reserved.
 */
package org.netbeans.modules.xslt.tmap.model.impl;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import org.netbeans.modules.xslt.tmap.model.api.Service;
import org.netbeans.modules.xslt.tmap.model.api.Operation;
import org.netbeans.modules.xslt.tmap.model.api.Invoke;
import org.netbeans.modules.xslt.tmap.model.api.Transform;
import org.netbeans.modules.xslt.tmap.model.api.Param;
import org.netbeans.modules.xslt.tmap.model.api.TMapComponent;

/**
 *
 * @author Vitaly Bychkov
 * @version 1.0
 */
public enum TMapComponents {
    TRANSFORM_MAP("transformmap", ChildrenTypes.TRANSFORM_MAP_CHILDREN), // NOI18N
    SERVICE("service", ChildrenTypes.SERVICE_CHILDREN), // NOI18N
    OPERATION("operation", ChildrenTypes.OPERATION_CHILDREN), // NOI18N
    INVOKE("invoke", ChildrenTypes.INVOKE_CHILDREN),// NOI18N
    TRANSFORM("transform", ChildrenTypes.TRANSFORM_CHILDREN),// NOI18N
    PARAM("param", ChildrenTypes.PARAM_CHILDREN);// NOI18N

    private String myTagName;
    private ChildrenTypes myChildrenTypes;
            
    private TMapComponents(String tagName, ChildrenTypes childrenTypes) {
        myTagName = tagName;
        myChildrenTypes = childrenTypes;
    }

    public String getTagName() {
        return myTagName;
    }
   
    public Collection<Class<? extends TMapComponent>> getChildTypes() {
        return myChildrenTypes.getTypes();
    }
            
    public static enum ChildrenTypes {
        TRANSFORM_MAP_CHILDREN(createTransformMap()),
        SERVICE_CHILDREN(createService()),
        OPERATION_CHILDREN(createOperation()),
        INVOKE_CHILDREN(createInvoke()),
        TRANSFORM_CHILDREN(createTransform()),
        PARAM_CHILDREN(createParam());
        
        private Collection<Class<? extends TMapComponent>> myTypes;
        
        private ChildrenTypes(Collection<Class<? extends TMapComponent>> types) {
            myTypes = types;
        }
        
        public Collection<Class<? extends TMapComponent>> getTypes() {
            return myTypes;
        }
        
        private static Collection<Class<? extends TMapComponent>> createTransformMap() {
            Collection<Class<? extends TMapComponent>> children  = new ArrayList<Class<? extends TMapComponent>>(1);
            children.add(Service.class);
            return children;
        }
        
        private static Collection<Class<? extends TMapComponent>> createService() {
            Collection<Class<? extends TMapComponent>> children  = new ArrayList<Class<? extends TMapComponent>>(1);
            children.add(Operation.class);
            return children;
        }

        private static Collection<Class<? extends TMapComponent>> createOperation() {
            Collection<Class<? extends TMapComponent>> children  = new ArrayList<Class<? extends TMapComponent>>(2);
            children.add(Invoke.class);
            children.add(Transform.class);
            return children;
        }

        private static Collection<Class<? extends TMapComponent>> createInvoke() {
            Collection<Class<? extends TMapComponent>> children  = Collections.emptyList();
            return children;
        }

        private static Collection<Class<? extends TMapComponent>> createTransform() {
            Collection<Class<? extends TMapComponent>> children  = new ArrayList<Class<? extends TMapComponent>>(1);
            children.add(Param.class);
            return children;
        }

        private static Collection<Class<? extends TMapComponent>> createParam() {
            Collection<Class<? extends TMapComponent>> children  = Collections.emptyList();
            return children;
        }
    }
    
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.