package com.nortal.jroad.typegen.database; import java.beans.Introspector; import java.util.ArrayList; import java.util.List; import org.apache.xmlbeans.impl.common.NameUtil; import com.nortal.jroad.enums.XRoadProtocolVersion; /** * @author Roman Tekhov * @author Lauri Lättemäe (lauri.lattemae@nortal.com) - protocol 4.0 */ public class DatabaseClass { private static final String XTEE_DATABASE_CLASS_NAME_SUFFIX = "XTeeDatabase"; private static final String XTEE_DATABASE_IMPL_CLASS_NAME_SUFFIX = "XTeeDatabaseImpl"; private static final String XTEE_BASE_IMPL_CLASS_NAME = "XTeeDatabaseService"; private static final String XROAD_DATABASE_CLASS_NAME_SUFFIX = "XRoadDatabase"; private static final String XROAD_DATABASE_IMPL_CLASS_NAME_SUFFIX = "XRoadDatabaseImpl"; private static final String XROAD_BASE_IMPL_CLASS_NAME = "XRoadDatabaseService"; private final String database; private String packageName; private String interfaceName; private String implementationName; private String baseImplementationName; private final XRoadProtocolVersion version; private List<DatabaseServiceMethod> methods = new ArrayList<DatabaseServiceMethod>(); public DatabaseClass(String database, String packageName, XRoadProtocolVersion version) { this.database = database; this.packageName = packageName; this.version = version; switch (version) { default: interfaceName = NameUtil.upperCamelCase(database) + XROAD_DATABASE_CLASS_NAME_SUFFIX; implementationName = NameUtil.upperCamelCase(database) + XROAD_DATABASE_IMPL_CLASS_NAME_SUFFIX; baseImplementationName = XROAD_BASE_IMPL_CLASS_NAME; break; } } void add(DatabaseServiceMethod method) { methods.add(method); } public String getDatabase() { return database; } public String getPackageName() { return packageName; } public String getInterfaceName() { return interfaceName; } public String getInterfaceNameDecapitalized() { return Introspector.decapitalize(interfaceName); } public String getImplementationName() { return implementationName; } public String getBaseImplementationName() { return baseImplementationName; } public void setBaseImplementationName(String baseImplementationName) { this.baseImplementationName = baseImplementationName; } public String getQualifiedInterfaceName() { return packageName + "." + interfaceName; } public String getQualifiedImplementationName() { return packageName + "." + implementationName; } public List<DatabaseServiceMethod> getMethods() { return methods; } public String getProtocolVersion() { return version.name(); } }