/* * Copyright 2001-2008 Geert Bevin <gbevin[remove] at uwyn dot com> * Licensed under the Apache License, Version 2.0 (the "License") * $Id: ElementInfoProcessorFactory.java 3918 2008-04-14 17:35:35Z gbevin $ */ package com.uwyn.rife.engine; import com.uwyn.rife.datastructures.EnumClass; import java.util.Collection; public class ElementInfoProcessorFactory extends EnumClass<String> { public static final String MANUAL_IDENTIFIER = "manual"; public static final String XML_IDENTIFIER = "xml"; public static final String GROOVY_IDENTIFIER = "groovy"; public static final String JANINO_IDENTIFIER = "janino"; public static final String ANNOTATIONS_IDENTIFIER = "annotations"; public static final ElementInfoProcessorFactory MANUAL = new ElementInfoProcessorFactory(MANUAL_IDENTIFIER, null, null, true, true); public static final ElementInfoProcessorFactory XML = new ElementInfoProcessorFactory(XML_IDENTIFIER, "xml", new Xml2ElementInfo(), false, false); public static final ElementInfoProcessorFactory GROOVY = new ElementInfoProcessorFactory(GROOVY_IDENTIFIER, "groovy", new Groovy2ElementInfo(), true, true); public static final ElementInfoProcessorFactory JANINO = new ElementInfoProcessorFactory(JANINO_IDENTIFIER, "janino", new Janino2ElementInfo(), true, true); public static final ElementInfoProcessorFactory ANNOTATIONS = new ElementInfoProcessorFactory(ANNOTATIONS_IDENTIFIER, null, new Annotations2ElementInfo(), true, true); private String mExtension = null; private ElementInfoProcessor mProcessor = null; private boolean mExitsFromFlowlinks = false; private boolean mOutputsFromDatalinks = false; public ElementInfoProcessorFactory(String identifier, String extension, ElementInfoProcessor processor, boolean exitsFromFlowlinks, boolean outputsFromDatalinks) { super(identifier); mExtension = extension; mProcessor = processor; mExitsFromFlowlinks = exitsFromFlowlinks; mOutputsFromDatalinks = outputsFromDatalinks; } public String getExtension() { return mExtension; } public String getIdentifier() { return identifier; } public ElementInfoProcessor getProcessor() { return mProcessor; } public boolean generateOutputsFromDatalinks() { return mOutputsFromDatalinks; } public boolean generateExitsFromFlowlinks() { return mExitsFromFlowlinks; } public static ElementInfoProcessorFactory getElementInfoProcessorFactory(String identifier) { return getMember(ElementInfoProcessorFactory.class, identifier); } public static Collection<ElementInfoProcessorFactory> getElementInfoProcessorFactories() { return (Collection<ElementInfoProcessorFactory>)getMembers(ElementInfoProcessorFactory.class); } }