net.sf.retrotranslator.transformer
Class ReplacementLocator

java.lang.Object
  extended by net.sf.retrotranslator.transformer.ReplacementLocator

 class ReplacementLocator
extends java.lang.Object

Author:
Taras Puchko

Nested Class Summary
(package private) static interface ReplacementLocator.KeyProvider
           
 
Field Summary
private  java.util.List<Backport> backports
           
private  TargetEnvironment environment
           
private  OperationMode mode
           
private static ClassReplacement NULL
           
private  java.util.Map<java.lang.String,ClassReplacement> replacements
           
 
Constructor Summary
ReplacementLocator(OperationMode mode, java.util.List<Backport> backports, TargetEnvironment environment)
           
 
Method Summary
private  void addInheritedMembers(ClassReplacement replacement)
           
private  void buildForClass(java.lang.String originalName, ClassReplacement replacement, ClassBackport backport)
           
private  void buildForMember(java.lang.String originalName, ClassReplacement replacement, MemberBackport backport)
           
private  void buildForPackage(java.lang.String originalName, ClassReplacement replacement, PackageBackport backport)
           
private  ClassReplacement buildReplacement(java.lang.String originalName)
           
private  void completeReplacement(ClassReplacement replacement, java.lang.String originalName)
           
private static Type[] deleteFirst(Type[] types)
           
private  MemberReplacement findCheckCastReplacement(java.util.Collection<MemberReplacement> replacements)
           
private  MemberReplacement findInstanceOfReplacement(java.util.Collection<MemberReplacement> replacements)
           
private  java.lang.String findUniqueName(java.lang.String prefix, java.lang.String suffix)
           
private  ClassDescriptor getClassDescriptor(java.lang.String internalName)
           
private static java.lang.String getConstructorDesc(java.lang.String desc)
           
 TargetEnvironment getEnvironment()
           
 java.lang.String getReferenceTypeName(java.lang.String className)
           
 ClassReplacement getReplacement(java.lang.String className)
           
 NameTranslator getTranslator()
           
 java.lang.String getUniqueTypeName(java.lang.String className)
           
private static boolean isArgument(MethodDescriptor descriptor)
           
private  boolean isClassAvailable(java.lang.String internalName)
           
private static boolean isInitializer(MethodDescriptor descriptor, java.lang.String referenceTypeName)
           
private  boolean isSupportedFeature(AnnotatedElementDescriptor descriptor)
           
private  void loadAllMembers(ClassReplacement replacement, ClassDescriptor descriptor, ReplacementLocator.KeyProvider keyProvider)
           
private  void loadConstructor(ClassReplacement classReplacement, MemberReplacement replacement)
           
private
<T extends AnnotatedElementDescriptor & MemberDescriptor>
void
loadMembers(java.lang.String owner, java.util.Collection<T> members, ReplacementLocator.KeyProvider keyProvider, java.util.Map<MemberKey,MemberReplacement> replacements)
           
private  void processMethod(ClassReplacement classReplacement, java.lang.String methodName, MemberReplacement replacement)
           
private static void putForConstructor(java.util.Map<java.lang.String,MemberReplacement> map, MemberReplacement replacement)
           
private static
<K,V> void
putIfAbsent(java.util.Map<K,V> map, K key, V value)
           
private static java.lang.String replaceChar(java.lang.String s, int index, java.lang.String replacement)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NULL

private static final ClassReplacement NULL

mode

private final OperationMode mode

backports

private final java.util.List<Backport> backports

environment

private final TargetEnvironment environment

replacements

private final java.util.Map<java.lang.String,ClassReplacement> replacements
Constructor Detail

ReplacementLocator

public ReplacementLocator(OperationMode mode,
                          java.util.List<Backport> backports,
                          TargetEnvironment environment)
Method Detail

getEnvironment

public TargetEnvironment getEnvironment()

getReplacement

public ClassReplacement getReplacement(java.lang.String className)

addInheritedMembers

private void addInheritedMembers(ClassReplacement replacement)

buildReplacement

private ClassReplacement buildReplacement(java.lang.String originalName)

buildForClass

private void buildForClass(java.lang.String originalName,
                           ClassReplacement replacement,
                           ClassBackport backport)

buildForMember

private void buildForMember(java.lang.String originalName,
                            ClassReplacement replacement,
                            MemberBackport backport)

buildForPackage

private void buildForPackage(java.lang.String originalName,
                             ClassReplacement replacement,
                             PackageBackport backport)

findUniqueName

private java.lang.String findUniqueName(java.lang.String prefix,
                                        java.lang.String suffix)

replaceChar

private static java.lang.String replaceChar(java.lang.String s,
                                            int index,
                                            java.lang.String replacement)

loadAllMembers

private void loadAllMembers(ClassReplacement replacement,
                            ClassDescriptor descriptor,
                            ReplacementLocator.KeyProvider keyProvider)

loadMembers

private <T extends AnnotatedElementDescriptor & MemberDescriptor> void loadMembers(java.lang.String owner,
                                                                                  java.util.Collection<T> members,
                                                                                  ReplacementLocator.KeyProvider keyProvider,
                                                                                  java.util.Map<MemberKey,MemberReplacement> replacements)

completeReplacement

private void completeReplacement(ClassReplacement replacement,
                                 java.lang.String originalName)

findCheckCastReplacement

private MemberReplacement findCheckCastReplacement(java.util.Collection<MemberReplacement> replacements)

findInstanceOfReplacement

private MemberReplacement findInstanceOfReplacement(java.util.Collection<MemberReplacement> replacements)

processMethod

private void processMethod(ClassReplacement classReplacement,
                           java.lang.String methodName,
                           MemberReplacement replacement)

deleteFirst

private static Type[] deleteFirst(Type[] types)

putForConstructor

private static void putForConstructor(java.util.Map<java.lang.String,MemberReplacement> map,
                                      MemberReplacement replacement)

getConstructorDesc

private static java.lang.String getConstructorDesc(java.lang.String desc)

loadConstructor

private void loadConstructor(ClassReplacement classReplacement,
                             MemberReplacement replacement)

isArgument

private static boolean isArgument(MethodDescriptor descriptor)

isInitializer

private static boolean isInitializer(MethodDescriptor descriptor,
                                     java.lang.String referenceTypeName)

isClassAvailable

private boolean isClassAvailable(java.lang.String internalName)

getClassDescriptor

private ClassDescriptor getClassDescriptor(java.lang.String internalName)

isSupportedFeature

private boolean isSupportedFeature(AnnotatedElementDescriptor descriptor)

getUniqueTypeName

public java.lang.String getUniqueTypeName(java.lang.String className)

getReferenceTypeName

public java.lang.String getReferenceTypeName(java.lang.String className)

putIfAbsent

private static <K,V> void putIfAbsent(java.util.Map<K,V> map,
                                      K key,
                                      V value)

getTranslator

public NameTranslator getTranslator()