/*
* Copyright 2001-2008 Geert Bevin <gbevin[remove] at uwyn dot com>
* Licensed under the Apache License, Version 2.0 (the "License")
* $Id: SiteProcessorFactory.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 SiteProcessorFactory 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 SiteProcessorFactory MANUAL = new SiteProcessorFactory(MANUAL_IDENTIFIER, null, null);
public static final SiteProcessorFactory XML = new SiteProcessorFactory(XML_IDENTIFIER, "xml", new Xml2Site());
public static final SiteProcessorFactory GROOVY = new SiteProcessorFactory(GROOVY_IDENTIFIER, "groovy", new Groovy2Site());
public static final SiteProcessorFactory JANINO = new SiteProcessorFactory(JANINO_IDENTIFIER, "janino", new Janino2Site());
private String mExtension = null;
private SiteProcessor mProcessor = null;
public SiteProcessorFactory(String identifier, String extension, SiteProcessor processor)
{
super(identifier);
mExtension = extension;
mProcessor = processor;
}
public String getIdentifier()
{
return toString();
}
public String getExtension()
{
return mExtension;
}
public SiteProcessor getProcessor()
{
return mProcessor;
}
public static SiteProcessorFactory getSiteProcessorFactory(String identifier)
{
return getMember(SiteProcessorFactory.class, identifier);
}
public static Collection<SiteProcessorFactory> getSiteProcessorFactories()
{
return (Collection<SiteProcessorFactory>)getMembers(SiteProcessorFactory.class);
}
}