/**
* @file Extension.java
* @brief Class implementing the instiable Extension resource
*
* @section License
*
* Copyright (C) 2013-2014 Robert B. Colton
* This file is a part of the LateralGM IDE.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
**/
package org.lateralgm.resources;
import java.util.EnumMap;
import org.lateralgm.resources.sub.ExtensionFile;
import org.lateralgm.resources.sub.ExtensionFunction;
import org.lateralgm.util.ActiveArrayList;
import org.lateralgm.util.PropertyMap;
public class Extension extends InstantiableResource<Extension,Extension.PExtension>
{
public final ActiveArrayList<ExtensionFile> files = new ActiveArrayList<ExtensionFile>();
public final ActiveArrayList<ExtensionFunction> functions = new ActiveArrayList<ExtensionFunction>();
public enum PExtension
{
//TODO: Extensions
NAME,VERSION,AUTHOR,DATE,LICENSE,DESCRIPTION,HELPFILE,INSTALLDIR
}
private static final EnumMap<PExtension,Object> DEF = null;
@Override
public Extension makeInstance(ResourceReference<Extension> ref)
{
return new Extension();
}
@Override
protected PropertyMap<PExtension> makePropertyMap()
{
return new PropertyMap<PExtension>(PExtension.class,this,DEF);
}
@Override
protected void postCopy(Extension dest)
{ //Nothing else to copy
}
}