/* * Copyright 2013 Guidewire Software, Inc. */ package gw.lang.ir; import gw.lang.UnstableAPI; @UnstableAPI public class SyntheticIRType implements IRType { private Class _superClass; private String _name; private String _relativeName; public SyntheticIRType(Class superClass, String name, String relativeName) { _superClass = superClass; _name = name; _relativeName = relativeName; } public Class getSuperClass() { return _superClass; } @Override public String getName() { return _name; } @Override public String getRelativeName() { return _relativeName; } @Override public String getDescriptor() { return 'L' + getSlashName( ) + ';'; } @Override public Class getJavaClass() { throw new UnsupportedOperationException(); } @Override public String getSlashName() { return _name.replace( '.', '/' ); } @Override public IRType getArrayType() { return new SyntheticIRArrayType(this); } @Override public IRType getComponentType() { return null; } @Override public boolean isArray() { return false; } @Override public boolean isAssignableFrom(IRType otherType) { return otherType instanceof SyntheticIRType && otherType.getName().equals(_name); } @Override public boolean isByte() { return false; } @Override public boolean isBoolean() { return false; } @Override public boolean isShort() { return false; } @Override public boolean isChar() { return false; } @Override public boolean isInt() { return false; } @Override public boolean isLong() { return false; } @Override public boolean isFloat() { return false; } @Override public boolean isDouble() { return false; } @Override public boolean isVoid() { return false; } @Override public boolean isPrimitive() { return false; } @Override public boolean isInterface() { return false; } @Override public boolean isStructural() { return false; } @Override public boolean isStructuralAndErased( IRType ownersType ) { return false; } }