Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/facet/JpaFacetDataModelProvider.java')
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/facet/JpaFacetDataModelProvider.java100
1 files changed, 100 insertions, 0 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/facet/JpaFacetDataModelProvider.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/facet/JpaFacetDataModelProvider.java
new file mode 100644
index 0000000000..b0cb12ae48
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/facet/JpaFacetDataModelProvider.java
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2007 Oracle. All rights reserved.
+ * This program and the accompanying materials are made available under the terms of
+ * the Eclipse Public License v1.0, which accompanies this distribution and is available at
+ * http://www.eclipse.org/legal/epl-v10.html.
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.core.internal.facet;
+
+import java.util.Set;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jpt.core.internal.JpaCoreMessages;
+import org.eclipse.jpt.core.internal.JpaCorePlugin;
+import org.eclipse.jpt.core.internal.platform.generic.GenericPlatform;
+import org.eclipse.jpt.db.internal.ConnectionProfileRepository;
+import org.eclipse.wst.common.componentcore.datamodel.FacetInstallDataModelProvider;
+
+public class JpaFacetDataModelProvider
+ extends FacetInstallDataModelProvider
+ implements IJpaFacetDataModelProperties
+{
+ public JpaFacetDataModelProvider() {
+ super();
+ }
+
+
+ @Override
+ public Set getPropertyNames() {
+ Set propertyNames = super.getPropertyNames();
+ propertyNames.add(PLATFORM_ID);
+ propertyNames.add(CONNECTION);
+ propertyNames.add(JPA_LIBRARY);
+ propertyNames.add(CREATE_ORM_XML);
+ return propertyNames;
+ }
+
+ @Override
+ public Object getDefaultProperty(String propertyName) {
+ if (FACET_ID.equals(propertyName)) {
+ return JpaCorePlugin.FACET_ID;
+ }
+ else if (PLATFORM_ID.equals(propertyName)) {
+ return GenericPlatform.ID;
+ }
+ else if (CONNECTION.equals(propertyName)) {
+ return "";
+ }
+ else if (JPA_LIBRARY.equals(propertyName)) {
+ return "";
+ }
+ else if (CREATE_ORM_XML.equals(propertyName)) {
+ return Boolean.TRUE;
+ }
+ else {
+ return super.getDefaultProperty(propertyName);
+ }
+ }
+
+ @Override
+ public IStatus validate(String name) {
+ if (PLATFORM_ID.equals(name)) {
+ return validatePlatform(getStringProperty(name));
+ }
+ else if (CONNECTION.equals(name)) {
+ return validateConnection(getStringProperty(name));
+ }
+ else if (JPA_LIBRARY.equals(name)) {
+ return validateJpaLibrary(getStringProperty(name));
+ }
+ else {
+ return super.validate(name);
+ }
+ }
+
+ private IStatus validatePlatform(String platformId) {
+ if (platformId == null || platformId.equals("")) {
+ return new Status(IStatus.ERROR, JpaCorePlugin.PLUGIN_ID, JpaCoreMessages.VALIDATE_PLATFORM_NOT_SPECIFIED);
+ }
+ else {
+ return OK_STATUS;
+ }
+ }
+
+ private IStatus validateConnection(String connectionName) {
+ if (connectionName == null || connectionName.equals("") || ! ConnectionProfileRepository.instance().getConnectionWithProfileNamed(connectionName).isConnected()) {
+ return new Status(IStatus.INFO, JpaCorePlugin.PLUGIN_ID, JpaCoreMessages.VALIDATE_CONNECTION_NOT_CONNECTED);
+ }
+ else {
+ return OK_STATUS;
+ }
+ }
+
+ private IStatus validateJpaLibrary(String library) {
+ // TODO
+ return OK_STATUS;
+ }
+}

Back to the top