/** * GRANITE DATA SERVICES * Copyright (C) 2006-2015 GRANITE DATA SERVICES S.A.S. * * This file is part of the Granite Data Services Platform. * * Granite Data Services is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * Granite Data Services 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 Lesser * General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, * USA, or see <http://www.gnu.org/licenses/>. */ package org.granite.test.generator; import java.io.File; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import org.granite.generator.TemplateUri; import org.granite.generator.as3.As3TypeFactory; import org.granite.generator.as3.DefaultEntityFactory; import org.granite.generator.as3.DefaultRemoteDestinationFactory; import org.granite.generator.as3.EntityFactory; import org.granite.generator.as3.JavaAs3GroovyConfiguration; import org.granite.generator.as3.JavaAs3Input; import org.granite.generator.as3.PackageTranslator; import org.granite.generator.as3.RemoteDestinationFactory; import org.granite.generator.as3.reflect.JavaType.Kind; import org.granite.generator.gsp.GroovyTemplateFactory; import org.granite.generator.javafx.DefaultJavaFXTypeFactory; import org.granite.generator.javafx.template.JavaFXTemplateUris; public class MockJavaFXGroovyConfiguration implements JavaAs3GroovyConfiguration { private GroovyTemplateFactory groovyTemplateFactory = new GroovyTemplateFactory(); private As3TypeFactory as3TypeFactory = new DefaultJavaFXTypeFactory(); private EntityFactory entityFactory = new DefaultEntityFactory(); private RemoteDestinationFactory remoteDestinationFactory = new DefaultRemoteDestinationFactory(); private boolean tide = false; private Set<Class<?>> fileSetClasses = new HashSet<Class<?>>(); public void setTide(boolean tide) { this.tide = tide; } @Override public GroovyTemplateFactory getGroovyTemplateFactory() { return groovyTemplateFactory; } @Override public ClassLoader getClassLoader() { return getClass().getClassLoader(); } @Override public String getUid() { return "uid"; } @Override public boolean isGenerated(Class<?> clazz) { return fileSetClasses.contains(clazz); } public void addFileSetClasses(Class<?>... classes) { for (Class<?> clazz : classes) fileSetClasses.add(clazz); } @Override public As3TypeFactory getAs3TypeFactory() { return as3TypeFactory; } public void setAs3TypeFactory(As3TypeFactory typeFactory) { this.as3TypeFactory = typeFactory; } private List<PackageTranslator> translators = new ArrayList<PackageTranslator>(); @Override public List<PackageTranslator> getTranslators() { return translators; } public void addTranslator(String java, String client) { translators.add(new PackageTranslator(java, client)); } public PackageTranslator getPackageTranslator(String packageName) { return null; } @Override public EntityFactory getEntityFactory() { return entityFactory; } @Override public RemoteDestinationFactory getRemoteDestinationFactory() { return remoteDestinationFactory; } @Override public TemplateUri[] getTemplateUris(Kind kind, Class<?> clazz) { switch (kind) { case ENTITY: return new TemplateUri[] { new TemplateUri(JavaFXTemplateUris.ENTITY_BASE, true), new TemplateUri(JavaFXTemplateUris.ENTITY, false) }; case INTERFACE: return new TemplateUri[] { new TemplateUri(JavaFXTemplateUris.INTERFACE, false) }; case ENUM: return new TemplateUri[] { new TemplateUri(JavaFXTemplateUris.ENUM, false) }; case BEAN: return new TemplateUri[] { new TemplateUri(JavaFXTemplateUris.BEAN_BASE, true), new TemplateUri(JavaFXTemplateUris.BEAN, false) }; case REMOTE_DESTINATION: return new TemplateUri[] { new TemplateUri(tide ? JavaFXTemplateUris.TIDE_REMOTE_BASE : JavaFXTemplateUris.REMOTE_BASE, true), new TemplateUri(JavaFXTemplateUris.REMOTE, false) }; default: throw new IllegalArgumentException("Unknown template kind: " + kind + " / " + clazz); } } @Override public File getOutputDir(JavaAs3Input input) { return new File(System.getProperty("java.io.tmpdir")); } @Override public File getBaseOutputDir(JavaAs3Input input) { return new File(System.getProperty("java.io.tmpdir")); } @Override public File getWorkingDirectory() { return new File(System.getProperty("java.io.tmpdir")); } }