misc. cleanups
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@2044 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
This commit is contained in:
parent
92499cf576
commit
a8b61ccb17
|
@ -1,27 +1,43 @@
|
|||
package com.ibm.wala.cast.ir.translator;
|
||||
|
||||
import com.ibm.wala.cast.ir.translator.NativeBridge;
|
||||
import com.ibm.wala.cast.tree.*;
|
||||
import com.ibm.wala.cast.tree.CAstSourcePositionMap.Position;
|
||||
import com.ibm.wala.cast.tree.impl.*;
|
||||
import com.ibm.wala.cast.tree.visit.*;
|
||||
import com.ibm.wala.cast.util.*;
|
||||
import com.ibm.wala.util.collections.*;
|
||||
import com.ibm.wala.util.debug.*;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.URL;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.*;
|
||||
import java.util.*;
|
||||
import com.ibm.wala.cast.tree.CAst;
|
||||
import com.ibm.wala.cast.tree.CAstControlFlowMap;
|
||||
import com.ibm.wala.cast.tree.CAstEntity;
|
||||
import com.ibm.wala.cast.tree.CAstNode;
|
||||
import com.ibm.wala.cast.tree.CAstNodeTypeMap;
|
||||
import com.ibm.wala.cast.tree.CAstQualifier;
|
||||
import com.ibm.wala.cast.tree.CAstSourcePositionMap;
|
||||
import com.ibm.wala.cast.tree.CAstType;
|
||||
import com.ibm.wala.cast.tree.CAstSourcePositionMap.Position;
|
||||
import com.ibm.wala.cast.tree.impl.AbstractSourcePosition;
|
||||
import com.ibm.wala.cast.tree.impl.CAstControlFlowRecorder;
|
||||
import com.ibm.wala.cast.tree.impl.CAstNodeTypeMapRecorder;
|
||||
import com.ibm.wala.cast.tree.impl.CAstSourcePositionRecorder;
|
||||
import com.ibm.wala.util.collections.EmptyIterator;
|
||||
import com.ibm.wala.util.collections.HashMapFactory;
|
||||
import com.ibm.wala.util.collections.HashSetFactory;
|
||||
import com.ibm.wala.util.debug.Assertions;
|
||||
|
||||
public abstract class NativeTranslatorToCAst extends NativeBridge {
|
||||
|
||||
protected abstract class NativeEntity implements CAstEntity {
|
||||
private Position sourcePosition;
|
||||
|
||||
private final Map scopedEntities =
|
||||
new HashMap();
|
||||
private final Map<CAstNode, Collection<CAstEntity>> scopedEntities = HashMapFactory.make();
|
||||
|
||||
public Map getAllScopedEntities() {
|
||||
public Map<CAstNode, Collection<CAstEntity>> getAllScopedEntities() {
|
||||
return scopedEntities;
|
||||
}
|
||||
|
||||
|
@ -38,30 +54,30 @@ public abstract class NativeTranslatorToCAst extends NativeBridge {
|
|||
return sourcePosition;
|
||||
}
|
||||
|
||||
public Iterator getScopedEntities(CAstNode construct) {
|
||||
public Iterator<?> getScopedEntities(CAstNode construct) {
|
||||
if (scopedEntities.containsKey(construct)) {
|
||||
return ((Set)scopedEntities.get(construct)).iterator();
|
||||
return scopedEntities.get(construct).iterator();
|
||||
} else {
|
||||
return EmptyIterator.instance();
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private void addScopedEntity(CAstNode construct, CAstEntity child) {
|
||||
if (!scopedEntities.containsKey(construct)) {
|
||||
scopedEntities.put(construct, new HashSet(1));
|
||||
Collection<CAstEntity> set = HashSetFactory.make(1);
|
||||
scopedEntities.put(construct, set);
|
||||
}
|
||||
|
||||
((Set)scopedEntities.get(construct)).add( child );
|
||||
scopedEntities.get(construct).add(child);
|
||||
}
|
||||
}
|
||||
|
||||
protected abstract class NativeCodeEntity extends NativeEntity {
|
||||
protected final CAstSourcePositionRecorder src =
|
||||
new CAstSourcePositionRecorder();
|
||||
protected final CAstControlFlowRecorder cfg =
|
||||
new CAstControlFlowRecorder(src);
|
||||
protected final CAstNodeTypeMapRecorder types =
|
||||
new CAstNodeTypeMapRecorder();
|
||||
protected final CAstSourcePositionRecorder src = new CAstSourcePositionRecorder();
|
||||
|
||||
protected final CAstControlFlowRecorder cfg = new CAstControlFlowRecorder(src);
|
||||
|
||||
protected final CAstNodeTypeMapRecorder types = new CAstNodeTypeMapRecorder();
|
||||
|
||||
protected final CAstType type;
|
||||
|
||||
|
@ -146,14 +162,16 @@ public abstract class NativeTranslatorToCAst extends NativeBridge {
|
|||
|
||||
protected class NativeFieldEntity extends NativeDataEntity {
|
||||
private final String name;
|
||||
private final Set modifiers;
|
||||
|
||||
private final Set<CAstQualifier> modifiers;
|
||||
|
||||
private final CAstEntity declaringClass;
|
||||
|
||||
public NativeFieldEntity(String name, Set modifiers, boolean isStatic, CAstEntity declaringClass) {
|
||||
public NativeFieldEntity(String name, Set<CAstQualifier> modifiers, boolean isStatic, CAstEntity declaringClass) {
|
||||
this.name = name;
|
||||
this.declaringClass = declaringClass;
|
||||
|
||||
this.modifiers = new HashSet();
|
||||
this.modifiers = new HashSet<CAstQualifier>();
|
||||
if (modifiers != null) {
|
||||
this.modifiers.addAll(modifiers);
|
||||
}
|
||||
|
@ -179,7 +197,7 @@ public abstract class NativeTranslatorToCAst extends NativeBridge {
|
|||
return null;
|
||||
}
|
||||
|
||||
public Collection getQualifiers() {
|
||||
public Collection<CAstQualifier> getQualifiers() {
|
||||
return modifiers;
|
||||
}
|
||||
}
|
||||
|
@ -207,7 +225,7 @@ public abstract class NativeTranslatorToCAst extends NativeBridge {
|
|||
return type;
|
||||
}
|
||||
|
||||
public Collection getQualifiers() {
|
||||
public Collection<CAstQualifier> getQualifiers() {
|
||||
return type.getQualifiers();
|
||||
}
|
||||
};
|
||||
|
@ -248,8 +266,8 @@ public abstract class NativeTranslatorToCAst extends NativeBridge {
|
|||
return 1;
|
||||
}
|
||||
|
||||
public Collection getQualifiers() {
|
||||
return Collections.EMPTY_SET;
|
||||
public Collection<CAstQualifier> getQualifiers() {
|
||||
return Collections.emptySet();
|
||||
}
|
||||
|
||||
public String getFileName() {
|
||||
|
@ -261,43 +279,56 @@ public abstract class NativeTranslatorToCAst extends NativeBridge {
|
|||
|
||||
protected final String sourceFileName;
|
||||
|
||||
protected NativeTranslatorToCAst(CAst Ast,
|
||||
URL sourceURL,
|
||||
String sourceFileName)
|
||||
{
|
||||
protected NativeTranslatorToCAst(CAst Ast, URL sourceURL, String sourceFileName) {
|
||||
super(Ast);
|
||||
this.sourceURL = sourceURL;
|
||||
this.sourceFileName = sourceFileName;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private String getLocalFile() {
|
||||
return sourceFileName;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private String getFile() {
|
||||
return sourceURL.getFile();
|
||||
}
|
||||
|
||||
private Position makeLocation(final int fl,
|
||||
final int fc,
|
||||
final int ll,
|
||||
final int lc)
|
||||
{
|
||||
@SuppressWarnings("unused")
|
||||
private Position makeLocation(final int fl, final int fc, final int ll, final int lc) {
|
||||
return new AbstractSourcePosition() {
|
||||
public int getFirstLine() { return fl; }
|
||||
public int getLastLine() { return ll; }
|
||||
public int getFirstCol() { return fc; }
|
||||
public int getLastCol() { return lc; }
|
||||
public URL getURL() { return sourceURL; }
|
||||
public int getFirstLine() {
|
||||
return fl;
|
||||
}
|
||||
|
||||
public int getLastLine() {
|
||||
return ll;
|
||||
}
|
||||
|
||||
public int getFirstCol() {
|
||||
return fc;
|
||||
}
|
||||
|
||||
public int getLastCol() {
|
||||
return lc;
|
||||
}
|
||||
|
||||
public URL getURL() {
|
||||
return sourceURL;
|
||||
}
|
||||
|
||||
public InputStream getInputStream() throws IOException {
|
||||
return new FileInputStream(sourceFileName);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
String urlString = sourceURL.toString();
|
||||
if (urlString.lastIndexOf(File.separator) == -1)
|
||||
return "[" + fl + ":" + fc + "]->[" + ll + ":" + lc + "]";
|
||||
else
|
||||
return urlString.substring(urlString.lastIndexOf(File.separator)+1)+"@["+fl+":"+fc+"]->["+ll+":"+lc+"]";
|
||||
return urlString.substring(urlString.lastIndexOf(File.separator) + 1) + "@[" + fl + ":" + fc + "]->[" + ll + ":" + lc
|
||||
+ "]";
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
|
@ -10,10 +10,7 @@
|
|||
*****************************************************************************/
|
||||
package com.ibm.wala.cast.ir.translator;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Set;
|
||||
|
||||
import com.ibm.wala.cast.tree.*;
|
||||
import com.ibm.wala.cast.tree.CAstEntity;
|
||||
|
||||
public interface TranslatorToIR {
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ public interface CAstType {
|
|||
public interface Class extends Reference {
|
||||
boolean isInterface();
|
||||
|
||||
Collection getQualifiers();
|
||||
Collection<CAstQualifier> getQualifiers();
|
||||
}
|
||||
|
||||
public interface Array extends Reference {
|
||||
|
|
|
@ -21,7 +21,7 @@ import com.ibm.wala.util.graph.traverse.DFSDiscoverTimeIterator;
|
|||
|
||||
public class CAstFunctions {
|
||||
|
||||
public static CAstNode findIf(CAstNode tree, Filter f) {
|
||||
public static CAstNode findIf(CAstNode tree, Filter<CAstNode> f) {
|
||||
if (f.accepts(tree)) {
|
||||
return tree;
|
||||
} else {
|
||||
|
@ -73,7 +73,7 @@ public class CAstFunctions {
|
|||
};
|
||||
}
|
||||
|
||||
public static Iterator findAll(CAstNode tree, Filter f) {
|
||||
public static Iterator<CAstNode> findAll(CAstNode tree, Filter<?> f) {
|
||||
return new FilterIterator<CAstNode>(iterateNodes(tree), f);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue