blob: 2370919c037cdecabb0b25ac89a3aa5856cd9723 [file] [log] [blame]
/* *******************************************************************
* Copyright (c) 2005 Contributors.
* 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://eclipse.org/legal/epl-v10.html
*
* Contributors:
* Adrian Colyer Initial implementation
* ******************************************************************/
package org.aspectj.internal.lang.reflect;
import java.lang.reflect.Field;
import java.lang.reflect.Type;
import org.aspectj.lang.reflect.AjType;
import org.aspectj.lang.reflect.AjTypeSystem;
import org.aspectj.lang.reflect.InterTypeFieldDeclaration;
/**
* @author colyer
*
*/
public class InterTypeFieldDeclarationImpl extends InterTypeDeclarationImpl
implements InterTypeFieldDeclaration {
private String name;
private AjType<?> type;
private Type genericType;
/**
* @param decType
* @param target
* @param mods
*/
public InterTypeFieldDeclarationImpl(AjType<?> decType, String target,
int mods, String name, AjType<?> type, Type genericType) {
super(decType, target, mods);
this.name = name;
this.type = type;
this.genericType = genericType;
}
public InterTypeFieldDeclarationImpl(AjType<?> decType, AjType<?> targetType, Field base) {
super(decType,targetType,base.getModifiers());
this.name = base.getName();
this.type = AjTypeSystem.getAjType(base.getType());
Type gt = base.getGenericType();
if (gt instanceof Class) {
this.genericType = AjTypeSystem.getAjType((Class<?>)gt);
} else {
this.genericType = gt;
}
}
/* (non-Javadoc)
* @see org.aspectj.lang.reflect.InterTypeFieldDeclaration#getName()
*/
public String getName() {
return this.name;
}
/* (non-Javadoc)
* @see org.aspectj.lang.reflect.InterTypeFieldDeclaration#getType()
*/
public AjType<?> getType() {
return this.type;
}
/* (non-Javadoc)
* @see org.aspectj.lang.reflect.InterTypeFieldDeclaration#getGenericType()
*/
public Type getGenericType() {
return this.genericType;
}
public String toString() {
StringBuffer sb = new StringBuffer();
sb.append(java.lang.reflect.Modifier.toString(getModifiers()));
sb.append(" ");
sb.append(getType().toString());
sb.append(" ");
sb.append(this.targetTypeName);
sb.append(".");
sb.append(getName());
return sb.toString();
}
}