Skip to content

Commit

Permalink
暂存
Browse files Browse the repository at this point in the history
  • Loading branch information
gongxun committed Apr 21, 2017
1 parent 67a8b47 commit fa6590f
Show file tree
Hide file tree
Showing 8 changed files with 108 additions and 9 deletions.
5 changes: 5 additions & 0 deletions group17/785396327/4.5/constant/ClassInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@ public int getType() {
return type;
}

@Override
public void accept(Visitor visitor) {

}

public String getClassName() {
int index = getUtf8Index();
UTF8Info utf8Info = (UTF8Info)constantPool.getConstantInfo(index);
Expand Down
23 changes: 21 additions & 2 deletions group17/785396327/4.5/constant/ConstantInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,38 @@ public abstract class ConstantInfo {
public static final int NAME_AND_TYPE_INFO = 12;
protected ConstantPool constantPool;

public ConstantInfo(){
public ConstantInfo() {

}

public ConstantInfo(ConstantPool pool) {
this.constantPool = pool;
}

public abstract int getType();

public ConstantPool getConstantPool() {
return constantPool;
}
public ConstantInfo getConstantInfo(int index){

public ConstantInfo getConstantInfo(int index) {
return this.constantPool.getConstantInfo(index);
}

public abstract void accept(Visitor visitor);

public interface Visitor {
void visitClassInfo(ClassInfo info);

void visitFieldRef(FieldRefInfo info);

void visitMethodRef(MethodRefInfo info);

void visitNameAndType(NameAndTypeInfo info);

void visitString(StringInfo info);

void visistUTF8(UTF8Info info);

}
}
5 changes: 5 additions & 0 deletions group17/785396327/4.5/constant/FieldRefInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@ public int getType() {
return type;
}

@Override
public void accept(Visitor visitor) {

}

public int getClassInfoIndex() {
return classInfoIndex;
}
Expand Down
63 changes: 56 additions & 7 deletions group17/785396327/4.5/constant/MethodRefInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
/**
* Created by IBM on 2017/4/10.
*/
public class MethodRefInfo extends ConstantInfo {
public class MethodRefInfo extends ConstantInfo implements ConstantInfo.Visitor {
private int type = ConstantInfo.METHOD_INFO;

private int classInfoIndex;
Expand All @@ -17,32 +17,81 @@ public int getType() {
return type;
}

@Override
public void accept(Visitor visitor) {
visitor.visitMethodRef(this);
}

public int getClassInfoIndex() {
return classInfoIndex;
}

public void setClassInfoIndex(int classInfoIndex) {
this.classInfoIndex = classInfoIndex;
}

public int getNameAndTypeIndex() {
return nameAndTypeIndex;
}

public void setNameAndTypeIndex(int nameAndTypeIndex) {
this.nameAndTypeIndex = nameAndTypeIndex;
}

public String toString(){
public String toString() {

return getClassName() +" : "+ this.getMethodName() + " : " + this.getNameAndTypeIndex() ;
return getClassName() + " : " + this.getMethodName() + " : " + this.getNameAndTypeIndex();
}
public String getClassName(){

public String getClassName() {
ConstantPool pool = this.getConstantPool();
ClassInfo clzInfo = (ClassInfo)pool.getConstantInfo(this.getClassInfoIndex());
ClassInfo clzInfo = (ClassInfo) pool.getConstantInfo(this.getClassInfoIndex());
return clzInfo.getClassName();
}

public String getMethodName(){
public String getMethodName() {
ConstantPool pool = this.getConstantPool();
NameAndTypeInfo typeInfo = (NameAndTypeInfo)pool.getConstantInfo(this.getNameAndTypeIndex());
NameAndTypeInfo typeInfo = (NameAndTypeInfo) pool.getConstantInfo(this.getNameAndTypeIndex());
return typeInfo.getName();
}

@Override
public void visitClassInfo(ClassInfo info) {

}

@Override
public void visitFieldRef(FieldRefInfo info) {

}

@Override
public void visitMethodRef(MethodRefInfo info) {
StringBuilder sb = new StringBuilder();
sb.append("\t# = Methodref\t\t\t#")
.append(classInfoIndex)
.append(".#")
.append(nameAndTypeIndex)
.append("\t\t// ")
.append(getClassName() + ".")
.append(((NameAndTypeInfo) getConstantInfo(nameAndTypeIndex)).getName())
.append(".")
.append(((NameAndTypeInfo) getConstantInfo(nameAndTypeIndex)).getTypeInfo());
System.out.println(sb.toString());
}

@Override
public void visitNameAndType(NameAndTypeInfo info) {

}

@Override
public void visitString(StringInfo info) {

}

@Override
public void visistUTF8(UTF8Info info) {

}
}
5 changes: 5 additions & 0 deletions group17/785396327/4.5/constant/NameAndTypeInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,11 @@ public int getType() {
return type;
}

@Override
public void accept(Visitor visitor) {

}


public String getName(){
ConstantPool pool = this.getConstantPool();
Expand Down
5 changes: 5 additions & 0 deletions group17/785396327/4.5/constant/NullConstantInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,9 @@ public NullConstantInfo(){
public int getType() {
return -1;
}

@Override
public void accept(Visitor visitor) {

}
}
5 changes: 5 additions & 0 deletions group17/785396327/4.5/constant/StringInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@ public int getType() {
return type;
}

@Override
public void accept(Visitor visitor) {

}

public int getIndex() {
return index;
}
Expand Down
6 changes: 6 additions & 0 deletions group17/785396327/4.5/constant/UTF8Info.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,12 @@ public void setLength(int length) {
public int getType() {
return type;
}

@Override
public void accept(Visitor visitor) {

}

@Override
public String toString() {
return "UTF8Info [type=" + type + ", length=" + length + ", value=" + value +")]";
Expand Down

0 comments on commit fa6590f

Please sign in to comment.