diff options
Diffstat (limited to 'jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/JavaResourceType.java')
-rw-r--r-- | jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/JavaResourceType.java | 168 |
1 files changed, 168 insertions, 0 deletions
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/JavaResourceType.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/JavaResourceType.java new file mode 100644 index 0000000000..e9ac3df638 --- /dev/null +++ b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/JavaResourceType.java @@ -0,0 +1,168 @@ +/******************************************************************************* + * Copyright (c) 2010 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.jaxb.core.resource.java; + +import org.eclipse.jdt.core.IPackageFragment; + +/** + * Java source code or binary type. + * <p> + * Provisional API: This interface is part of an interim API that is still + * under development and expected to change significantly before reaching + * stability. It is available at this early stage to solicit feedback from + * pioneering adopters on the understanding that any code that uses this API + * will almost certainly be broken (repeatedly) as the API evolves. + * + * @version 3.0 + * @since 2.0 + */ +public interface JavaResourceType + extends JavaResourceMember +{ + /** + * Return the unqualified (short) type name. + */ + String getName(); + String NAME_PROPERTY = "name"; //$NON-NLS-1$ + + /** + * Return the fully qualified type name. + */ + String getQualifiedName(); + String QUALIFIED_NAME_PROPERTY = "qualifiedName"; //$NON-NLS-1$ + + /** + * Return the package name. + */ + String getPackageName(); + String PACKAGE_NAME_PROPERTY = "packageName"; //$NON-NLS-1$ + + /** + * Return the fully qualified name of the type's superclass. + */ + String getSuperclassQualifiedName(); + String SUPERCLASS_QUALIFIED_NAME_PROPERTY = "superclassQualifiedName"; //$NON-NLS-1$ + + /** + * Return the name of the type's "declaring type". + * Return <code>null</code> if the type is a top-level type. + */ + String getDeclaringTypeName(); + String DECLARING_TYPE_NAME_PROPERTY = "declaringTypeName"; //$NON-NLS-1$ + + /** + * Return whether the type is abstract. + */ + boolean isAbstract(); + String ABSTRACT_PROPERTY = "abstract"; //$NON-NLS-1$ + + /** + * Return whether the type is a member type. + */ + boolean isMemberType(); + String MEMBER_TYPE_PROPERTY = "memberType"; //$NON-NLS-1$ + + /** + * Return whether the type is static. + */ + boolean isStatic(); + String STATIC_PROPERTY = "static"; //$NON-NLS-1$ + + /** + * Return whether the type has a no-arg constructor (private, protected, or public) + */ + boolean hasNoArgConstructor(); + String NO_ARG_CONSTRUCTOR_PROPERTY = "noArgConstructor"; //$NON-NLS-1$ + + /** + * Return whether the type has a private no-arg constructor + */ + boolean hasPrivateNoArgConstructor(); + String PRIVATE_NO_ARG_CONSTRUCTOR_PROPERTY = "privateNoArgConstructor"; //$NON-NLS-1$ + + /** + * Return whether the type is annotated with any annotations that determine whether and + * how the type is persisted + */ + boolean isMapped(); + + /** + * Return whether the type has any attributes that have JAXB annotations + * on them (which can be used to infer the type's access type). + */ + boolean hasAnyAnnotatedAttributes(); + + boolean isIn(IPackageFragment packageFragment); + + + // ********** types ********** + + /** + * Return the immediately nested types (children). + */ + Iterable<JavaResourceType> getTypes(); + String TYPES_COLLECTION = "types"; //$NON-NLS-1$ + + /** + * Return all the types; the type itself, its children, its grandchildren, + * etc. + */ + Iterable<JavaResourceType> getAllTypes(); + + /** + * Return the immediately nested persistable types. + */ + Iterable<JavaResourceType> getPersistableTypes(); + + + // ********** fields ********** + + /** + * Return the type's fields. + */ + Iterable<JavaResourceAttribute> getFields(); + String FIELDS_COLLECTION = "fields"; //$NON-NLS-1$ + + /** + * Return the type's persistable fields. + */ + Iterable<JavaResourceAttribute> getPersistableFields(); + + + // ********** methods ********** + + /** + * Return the type's methods. This returns *all* methods from the JDT Type + */ + Iterable<JavaResourceAttribute> getMethods(); + String METHODS_COLLECTION = "methods"; //$NON-NLS-1$ + + /** + * Return the type's persistable properties. This returns only the getter methods + * that match the JavaBeans criteria for JPA, hence the name properties instead of methods + */ + Iterable<JavaResourceAttribute> getPersistableProperties(); + + + // ********** attributes ********** + + /** + * Return the type's persistable fields and properties. + * {@link JavaResourceMember#isPersistable()} + */ + Iterable<JavaResourceAttribute> getPersistableAttributes(); + + /** + * Return the persistable properties and/or fields given the non-null specified access type + * {@link JavaResourceMember#isPersistable()} + */ + Iterable<JavaResourceAttribute> getPersistableAttributes(XmlAccessType specifiedAccess); + +} |