diff options
Diffstat (limited to 'plugins/org.eclipse.jem/mofjava/org/eclipse/jem/internal/java/adapters/jdk/JavaFieldJDKAdaptor.java')
-rw-r--r-- | plugins/org.eclipse.jem/mofjava/org/eclipse/jem/internal/java/adapters/jdk/JavaFieldJDKAdaptor.java | 150 |
1 files changed, 0 insertions, 150 deletions
diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/internal/java/adapters/jdk/JavaFieldJDKAdaptor.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/internal/java/adapters/jdk/JavaFieldJDKAdaptor.java deleted file mode 100644 index fafa6c5b3..000000000 --- a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/internal/java/adapters/jdk/JavaFieldJDKAdaptor.java +++ /dev/null @@ -1,150 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2003, 2005 IBM Corporation and others. - * 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: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.jem.internal.java.adapters.jdk; -/* - * $RCSfile: JavaFieldJDKAdaptor.java,v $ - * $Revision: 1.7 $ $Date: 2005/08/24 20:20:25 $ - */ -import org.eclipse.emf.common.notify.Notifier; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.util.EcoreUtil; -import org.eclipse.jem.java.*; -import org.eclipse.jem.internal.java.adapters.ReadAdaptor; -/** - * Insert the type's description here. - * Creation date: (6/6/2000 4:42:50 PM) - * @author: Administrator - */ -public class JavaFieldJDKAdaptor extends JDKAdaptor { - protected java.lang.reflect.Field sourceField = null; - protected Class parentType = null; - public JavaFieldJDKAdaptor(Notifier target, JavaJDKAdapterFactory anAdapterFactory) { - super(target, anAdapterFactory); - } - /** - * getParentType - return the Class which corresponds to our parent JavaClass - * we're going to do this a lot, so cache it. - */ - protected Class getParentType() { - if (parentType == null) { - Field targetField = (Field) getTarget(); - JavaClass parentJavaClass = targetField.getJavaClass(); - JavaClassJDKAdaptor pa = (JavaClassJDKAdaptor) EcoreUtil.getAdapter(parentJavaClass.eAdapters(), ReadAdaptor.TYPE_KEY); - if (pa != null) - parentType = pa.getSourceType(); - } - return parentType; - } - public Object getReflectionSource() { - return getSourceField(); - } - - /* (non-Javadoc) - * @see org.eclipse.jem.internal.java.adapters.JavaReflectionAdaptor#hasReflectionSource() - */ - public boolean hasCachedReflectionSource() { - return sourceField != null; - } - /** - * getSourceField - return the java.lang.reflect.Field which describes our implementing field - */ - protected java.lang.reflect.Field getSourceField() { - if (sourceField == null) { - Class parent = this.getParentType(); - if (parent != null) { - try { - sourceField = parent.getDeclaredField(((Field) getTarget()).getName()); - } catch (NoSuchFieldException e) { - // OK, carry on - } - } - } - return sourceField; - } - public Field getTargetField() { - return (Field) getTarget(); - } - /** - * getValueIn method comment. - */ - public Object getValueIn(EObject object, EObject attribute) { - // At this point, this adapter does not dynamically compute any values, - // all values are pushed back into the target on the initial call. - return super.getValueIn(object, attribute); - } - /** - * reflectValues - template method, subclasses override to pump values into target. - * on entry: name, containing package (and qualified name), and document must be set. - * JavaClass adaptor: - * - set modifiers - * - set name - * - set type - */ - public boolean reflectValues() { - if (getSourceField() != null) { - setModifiers(); - setType(); - setInitializerIfPossible(); - return true; - } - return false; - } - /** - * Used for the very narrow case of final static Strings - */ - protected void setInitializerIfPossible() { - if (!(getTargetField().isStatic() && getTargetField().isFinal() && "java.lang.String".equals(((JavaHelpers) getTargetField().getEType()).getQualifiedName()))) //$NON-NLS-1$ - return; - - String value = null; - try { - value = (String) getSourceField().get(null); - } catch (IllegalAccessException ex) { - return; - } - - if (value == null) - return; - else - value = "\"".concat(value).concat("\""); //$NON-NLS-2$//$NON-NLS-1$ - - Block aBlock = createBlock(getTargetField().getName(), value); - getTargetField().setInitializer(aBlock); - } - /** - * setModifiers - set the attribute values related to modifiers here - */ - protected void setModifiers() { - Field javaFieldTarget = (Field) getTarget(); - // For JDK reflection, I don't think we can set the initializer - int modifiers = getSourceField().getModifiers(); - javaFieldTarget.setStatic(java.lang.reflect.Modifier.isStatic(modifiers)); - javaFieldTarget.setTransient(java.lang.reflect.Modifier.isTransient(modifiers)); - javaFieldTarget.setVolatile(java.lang.reflect.Modifier.isVolatile(modifiers)); - javaFieldTarget.setFinal(java.lang.reflect.Modifier.isFinal(modifiers)); - // Set visibility - if (java.lang.reflect.Modifier.isPublic(modifiers)) - javaFieldTarget.setJavaVisibility(JavaVisibilityKind.PUBLIC_LITERAL); - else if (java.lang.reflect.Modifier.isPrivate(modifiers)) - javaFieldTarget.setJavaVisibility(JavaVisibilityKind.PRIVATE_LITERAL); - else if (java.lang.reflect.Modifier.isProtected(modifiers)) - javaFieldTarget.setJavaVisibility(JavaVisibilityKind.PROTECTED_LITERAL); - else - javaFieldTarget.setJavaVisibility(JavaVisibilityKind.PACKAGE_LITERAL); - } - /** - * setType - set our type here - */ - protected void setType() { - String typeName = getTypeName(getSourceField().getType()); - setFieldType(getTargetField(), typeName); - } -} |