All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.persistence.jaxb.javamodel.reflection.JavaModelInputImpl Maven / Gradle / Ivy

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; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy