1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-07 17:56:01 +02:00

toString method.

This commit is contained in:
Sergey Prigogin 2008-12-25 20:33:36 +00:00
parent e34b9fc378
commit 648ade1628
7 changed files with 71 additions and 22 deletions

View file

@ -18,19 +18,19 @@ import org.eclipse.cdt.core.dom.ast.DOMException;
import org.eclipse.cdt.core.dom.ast.IType; import org.eclipse.cdt.core.dom.ast.IType;
/** /**
* internal interface representing types that contain other types * Internal interface representing types that contain other types
* @author aniefer * @author aniefer
*/ */
public interface ITypeContainer extends IType{ public interface ITypeContainer extends IType {
/** /**
* get the type this contains * get the type this contains
* @throws DOMException * @throws DOMException
*/ */
IType getType() throws DOMException; IType getType() throws DOMException;
/** /**
* set the type this contains * set the type this contains
* @param type * @param type
*/ */
void setType( IType type ); void setType(IType type);
} }

View file

@ -22,43 +22,53 @@ import org.eclipse.cdt.internal.core.dom.parser.ITypeContainer;
*/ */
public class ArrayTypeClone implements IIndexType, IArrayType, ITypeContainer { public class ArrayTypeClone implements IIndexType, IArrayType, ITypeContainer {
private final IArrayType delegate; private final IArrayType delegate;
private IType type = null; private IType type;
public ArrayTypeClone(IArrayType array) { public ArrayTypeClone(IArrayType array) {
this.delegate = array; this.delegate = array;
} }
public boolean isSameType(IType type) {
if( type instanceof ITypedef )
return ((ITypedef)type).isSameType( this );
if( !( type instanceof IArrayType )) public boolean isSameType(IType type) {
if (type instanceof ITypedef)
return ((ITypedef) type).isSameType(this);
if (!(type instanceof IArrayType))
return false; return false;
try { try {
IType type1= this.getType(); IType type1= this.getType();
if( type1 == null ) if (type1 == null)
return false; return false;
IArrayType rhs = (IArrayType) type; IArrayType rhs = (IArrayType) type;
return type1.isSameType( rhs.getType() ); return type1.isSameType(rhs.getType());
} catch (DOMException e) { } catch (DOMException e) {
} }
return false; return false;
} }
public IASTExpression getArraySizeExpression() throws DOMException { public IASTExpression getArraySizeExpression() throws DOMException {
return delegate.getArraySizeExpression(); return delegate.getArraySizeExpression();
} }
public IType getType() throws DOMException { public IType getType() throws DOMException {
if (type == null) { if (type == null) {
return delegate.getType(); return delegate.getType();
} }
return type; return type;
} }
public void setType(IType type) { public void setType(IType type) {
this.type = type; this.type = type;
} }
@Override @Override
public Object clone() { public Object clone() {
return new ArrayTypeClone(this); return new ArrayTypeClone(this);
} }
@Override
public String toString() {
return delegate.toString();
}
} }

View file

@ -21,22 +21,24 @@ import org.eclipse.cdt.internal.core.dom.parser.ITypeContainer;
*/ */
public class CPPReferenceTypeClone implements ICPPReferenceType, ITypeContainer, IIndexType { public class CPPReferenceTypeClone implements ICPPReferenceType, ITypeContainer, IIndexType {
private final ICPPReferenceType delegate; private final ICPPReferenceType delegate;
private IType type = null; private IType type;
public CPPReferenceTypeClone(ICPPReferenceType reference) { public CPPReferenceTypeClone(ICPPReferenceType reference) {
this.delegate = reference; this.delegate = reference;
} }
public IType getType() throws DOMException { public IType getType() throws DOMException {
if (type == null) { if (type == null) {
return delegate.getType(); return delegate.getType();
} }
return type; return type;
} }
public boolean isSameType(IType type) { public boolean isSameType(IType type) {
if( type instanceof ITypedef ) if (type instanceof ITypedef)
return type.isSameType(this); return type.isSameType(this);
if( !( type instanceof ICPPReferenceType )) if (!(type instanceof ICPPReferenceType))
return false; return false;
ICPPReferenceType rhs = (ICPPReferenceType) type; ICPPReferenceType rhs = (ICPPReferenceType) type;
@ -49,11 +51,18 @@ public class CPPReferenceTypeClone implements ICPPReferenceType, ITypeContainer,
} }
return false; return false;
} }
public void setType(IType type) { public void setType(IType type) {
this.type = type; this.type = type;
} }
@Override @Override
public Object clone() { public Object clone() {
return new CPPReferenceTypeClone(this); return new CPPReferenceTypeClone(this);
} }
@Override
public String toString() {
return delegate.toString();
}
} }

View file

@ -25,36 +25,44 @@ import org.eclipse.core.runtime.CoreException;
*/ */
public class CPPTypedefClone implements ITypedef, ITypeContainer, IIndexType, ICPPBinding { public class CPPTypedefClone implements ITypedef, ITypeContainer, IIndexType, ICPPBinding {
protected final ITypedef delegate; protected final ITypedef delegate;
private IType type = null; private IType type;
public CPPTypedefClone(ITypedef typedef) { public CPPTypedefClone(ITypedef typedef) {
this.delegate = typedef; this.delegate = typedef;
} }
public IType getType() throws DOMException { public IType getType() throws DOMException {
if (type == null) { if (type == null) {
return delegate.getType(); return delegate.getType();
} }
return type; return type;
} }
public ILinkage getLinkage() throws CoreException { public ILinkage getLinkage() throws CoreException {
return delegate.getLinkage(); return delegate.getLinkage();
} }
public String getName() { public String getName() {
return delegate.getName(); return delegate.getName();
} }
public char[] getNameCharArray() { public char[] getNameCharArray() {
return delegate.getNameCharArray(); return delegate.getNameCharArray();
} }
public IScope getScope() throws DOMException { public IScope getScope() throws DOMException {
return delegate.getScope(); return delegate.getScope();
} }
public IBinding getOwner() throws DOMException { public IBinding getOwner() throws DOMException {
return delegate.getOwner(); return delegate.getOwner();
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public Object getAdapter(Class adapter) { public Object getAdapter(Class adapter) {
return delegate.getAdapter(adapter); return delegate.getAdapter(adapter);
} }
public boolean isSameType(IType type) { public boolean isSameType(IType type) {
try { try {
IType myrtype = getType(); IType myrtype = getType();
@ -62,27 +70,37 @@ public class CPPTypedefClone implements ITypedef, ITypeContainer, IIndexType, IC
return false; return false;
if (type instanceof ITypedef) { if (type instanceof ITypedef) {
type= ((ITypedef)type).getType(); type= ((ITypedef) type).getType();
} }
return myrtype.isSameType(type); return myrtype.isSameType(type);
} catch (DOMException e) { } catch (DOMException e) {
} }
return false; return false;
} }
public void setType(IType type) { public void setType(IType type) {
this.type = type; this.type = type;
} }
public String[] getQualifiedName() throws DOMException { public String[] getQualifiedName() throws DOMException {
return ((ICPPBinding)delegate).getQualifiedName(); return ((ICPPBinding) delegate).getQualifiedName();
} }
public char[][] getQualifiedNameCharArray() throws DOMException { public char[][] getQualifiedNameCharArray() throws DOMException {
return ((ICPPBinding)delegate).getQualifiedNameCharArray(); return ((ICPPBinding) delegate).getQualifiedNameCharArray();
} }
public boolean isGloballyQualified() throws DOMException { public boolean isGloballyQualified() throws DOMException {
return ((ICPPBinding)delegate).isGloballyQualified(); return ((ICPPBinding) delegate).isGloballyQualified();
} }
@Override @Override
public Object clone() { public Object clone() {
return new CPPTypedefClone(this); return new CPPTypedefClone(this);
} }
@Override
public String toString() {
return delegate.toString();
}
} }

View file

@ -21,7 +21,7 @@ import org.eclipse.cdt.internal.core.dom.parser.ITypeContainer;
*/ */
public class PointerTypeClone implements IPointerType, ITypeContainer, IIndexType { public class PointerTypeClone implements IPointerType, ITypeContainer, IIndexType {
protected final IPointerType delegate; protected final IPointerType delegate;
private IType type = null; private IType type;
public PointerTypeClone(IPointerType pointer) { public PointerTypeClone(IPointerType pointer) {
this.delegate = pointer; this.delegate = pointer;

View file

@ -26,18 +26,22 @@ public class QualifierTypeClone implements IQualifierType, ITypeContainer, IInde
public QualifierTypeClone(IQualifierType qualifier) { public QualifierTypeClone(IQualifierType qualifier) {
this.delegate = qualifier; this.delegate = qualifier;
} }
public IType getType() throws DOMException { public IType getType() throws DOMException {
if (type == null) { if (type == null) {
return delegate.getType(); return delegate.getType();
} }
return type; return type;
} }
public boolean isConst() { public boolean isConst() {
return delegate.isConst(); return delegate.isConst();
} }
public boolean isVolatile() { public boolean isVolatile() {
return delegate.isVolatile(); return delegate.isVolatile();
} }
public boolean isSameType(IType type) { public boolean isSameType(IType type) {
if (type instanceof ITypedef) if (type instanceof ITypedef)
return type.isSameType(this); return type.isSameType(this);
@ -54,12 +58,19 @@ public class QualifierTypeClone implements IQualifierType, ITypeContainer, IInde
} }
return false; return false;
} }
public void setType(IType type) { public void setType(IType type) {
this.type = type; this.type = type;
} }
@Override @Override
public Object clone() { public Object clone() {
return new QualifierTypeClone(this); return new QualifierTypeClone(this);
} }
@Override
public String toString() {
return delegate.toString();
}
} }

View file

@ -26,10 +26,9 @@ import org.eclipse.cdt.internal.core.pdom.dom.PDOMPointerType;
import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.CoreException;
class PDOMCPPPointerToMemberType extends PDOMPointerType implements ICPPPointerToMemberType { class PDOMCPPPointerToMemberType extends PDOMPointerType implements ICPPPointerToMemberType {
private static final int TYPE = PDOMPointerType.RECORD_SIZE; private static final int TYPE = PDOMPointerType.RECORD_SIZE;
@SuppressWarnings("hiding") @SuppressWarnings("hiding")
private static final int RECORD_SIZE= TYPE+4; private static final int RECORD_SIZE= TYPE + 4;
public PDOMCPPPointerToMemberType(PDOM pdom, int record) { public PDOMCPPPointerToMemberType(PDOM pdom, int record) {
super(pdom, record); super(pdom, record);
@ -79,9 +78,11 @@ class PDOMCPPPointerToMemberType extends PDOMPointerType implements ICPPPointerT
public PDOMCPPPointerToMemberTypeClone(ICPPPointerToMemberType pointer) { public PDOMCPPPointerToMemberTypeClone(ICPPPointerToMemberType pointer) {
super(pointer); super(pointer);
} }
public IType getMemberOfClass() { public IType getMemberOfClass() {
return ((ICPPPointerToMemberType) delegate).getMemberOfClass(); return ((ICPPPointerToMemberType) delegate).getMemberOfClass();
} }
@Override @Override
public Object clone() { public Object clone() {
return new PDOMCPPPointerToMemberTypeClone((ICPPPointerToMemberType) delegate); return new PDOMCPPPointerToMemberTypeClone((ICPPPointerToMemberType) delegate);