org.eclipse.persistence.jaxb.javamodel.reflection.JavaModelInputImpl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of eclipselink Show documentation
Show all versions of eclipselink Show documentation
EclipseLink build based upon Git transaction f2b9fc5
The newest version!
/*
* Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// Oracle - initial API and implementation from Oracle TopLink
package org.eclipse.persistence.jaxb.javamodel.reflection;
import java.lang.reflect.GenericArrayType;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import org.eclipse.persistence.jaxb.TypeMappingInfo;
import org.eclipse.persistence.jaxb.javamodel.JavaClass;
import org.eclipse.persistence.jaxb.javamodel.JavaModel;
import org.eclipse.persistence.jaxb.javamodel.JavaModelInput;
/**
* INTERNAL:
* Purpose:Provide access to an array of JavaClass instances
* and their associated JavaModel. This class will transform an array
* of Class objects to an array of JavaClasses.
*
*
Responsibilities:
*
* - Create an array of JavaClass instances from an array of Classes
* - Return an array of JavaClass objects to be used by the generator
* - Return the JavaModel to be used during generation
*
*
* @since Oracle TopLink 11.1.1.0.0
* @see org.eclipse.persistence.jaxb.javamodel.JavaClass
* @see org.eclipse.persistence.jaxb.javamodel.JavaModel
* @see org.eclipse.persistence.jaxb.javamodel.JavaModelInput
*/
public class JavaModelInputImpl implements JavaModelInput {
private JavaClass[] jClasses;
private JavaModel jModel;
private boolean facets;
/**
* This constructor builds an array of JavaClass objects from an array
* of Types. The JavaModel instance to be used is also set here.
*
* This constructor assumes that the a given type in the list will
* either be a Class or ParameterizedType.
*
*/
public JavaModelInputImpl(Type[] types, JavaModel javaModel) {
jModel = javaModel;
jClasses = new JavaClass[types.length];
for (int i=0; i[] classes, JavaModel javaModel) {
jModel = javaModel;
jClasses = new JavaClass[classes.length];
for (int i=0; i genericTypeClass = (Class) ((GenericArrayType) type).getGenericComponentType();
genericTypeClass = java.lang.reflect.Array.newInstance(genericTypeClass, 0).getClass();
return new JavaClassImpl(genericTypeClass, (JavaModelImpl) jModel);
} else {
// assume parameterized type
ParameterizedType pType = (ParameterizedType) type;
return new JavaClassImpl(pType, (Class) pType.getRawType(), (JavaModelImpl) jModel);
}
}
@Override
public JavaClass[] getJavaClasses() {
return jClasses;
}
@Override
public JavaModel getJavaModel() {
return jModel;
}
public boolean isFacets() {
return facets;
}
public void setFacets(boolean facets) {
this.facets = facets;
}
}