/******************************************************************************* * Copyright (c) 1998, 2015 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 v1.0 and Eclipse Distribution License v. 1.0 * which accompanies this distribution. * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html * and the Eclipse Distribution License is available at * http://www.eclipse.org/org/documents/edl-v10.php. * * Contributors: * mmacivor - March 12/2009 - Initial implementation ******************************************************************************/ package org.eclipse.persistence.jaxb.javamodel.reflection; import java.lang.reflect.Constructor; import java.lang.reflect.Modifier; import org.eclipse.persistence.jaxb.javamodel.JavaClass; import org.eclipse.persistence.jaxb.javamodel.JavaConstructor; /** * <p><b>Purpose</b>: JavaModel representation of a java.lang.reflect.Constructor object. * <p><b>Reponsibilities:</b> * <ul><li>Provide a reflection-based implementation of the JavaConstructor interface</li> * <li>Delegate calls to a wrapped instance of java.lang.reflect.Consturctor</li> * </ul> * @author mmacivor * */ public class JavaConstructorImpl implements JavaConstructor { private JavaModelImpl javaModelImpl; protected Constructor jConstructor; public JavaConstructorImpl(Constructor constructor, JavaModelImpl javaModelImpl) { this.javaModelImpl = javaModelImpl; this.jConstructor = constructor; } public int getModifiers() { return jConstructor.getModifiers(); } public String getName() { return jConstructor.getName(); } public JavaClass getOwningClass() { return javaModelImpl.getClass(jConstructor.getDeclaringClass()); } public JavaClass[] getParameterTypes() { Class[] params = jConstructor.getParameterTypes(); JavaClass[] paramArray = new JavaClass[params.length]; for (int i=0; i<params.length; i++) { paramArray[i] = javaModelImpl.getClass(params[i]); } return paramArray; } public boolean isAbstract() { return Modifier.isAbstract(getModifiers()); } public boolean isPrivate() { return Modifier.isPrivate(getModifiers()); } public boolean isProtected() { return Modifier.isProtected(getModifiers()); } public boolean isPublic() { return Modifier.isPublic(getModifiers()); } public boolean isStatic() { return Modifier.isStatic(getModifiers()); } public boolean isFinal() { return Modifier.isFinal(getModifiers()); } public boolean isSynthetic() { return jConstructor.isSynthetic(); } }