Package japicmp.model
Class JApiClass
- java.lang.Object
-
- japicmp.model.JApiClass
-
- All Implemented Interfaces:
JApiCanBeSynthetic,JApiCompatibility,JApiHasAbstractModifier,JApiHasAccessModifier,JApiHasAnnotations,JApiHasChangeStatus,JApiHasFinalModifier,JApiHasModifiers,JApiHasStaticModifier,JApiHasSyntheticAttribute,JApiHasSyntheticModifier,JApiJavaObjectSerializationCompatibility
public class JApiClass extends java.lang.Object implements JApiHasModifiers, JApiHasChangeStatus, JApiHasAccessModifier, JApiHasStaticModifier, JApiHasFinalModifier, JApiHasAbstractModifier, JApiCompatibility, JApiHasAnnotations, JApiJavaObjectSerializationCompatibility, JApiCanBeSynthetic
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface japicmp.model.JApiJavaObjectSerializationCompatibility
JApiJavaObjectSerializationCompatibility.JApiJavaObjectSerializationChangeStatus
-
-
Field Summary
-
Constructor Summary
Constructors Constructor Description JApiClass(JarArchiveComparator jarArchiveComparator, java.lang.String fullyQualifiedName, Optional<javassist.CtClass> oldClass, Optional<javassist.CtClass> newClass, JApiChangeStatus changeStatus, JApiClassType classType)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidaddParametersToMethod(MethodDescriptorParser methodDescriptorParser, JApiBehavior jApiMethod)private java.util.Map<java.lang.String,javassist.CtField>buildFieldMap(javassist.CtClass ctClass)private voidbuildInterfaceMap(JarArchiveComparator.ArchiveType archiveType, java.util.Map<java.lang.String,javassist.CtClass> map, javassist.CtClass ctInterface)private java.util.Map<java.lang.String,javassist.CtClass>buildInterfaceMap(javassist.CtClass ctClass, JarArchiveComparator.ArchiveType archiveType)private voidbuildInterfaceMap(javassist.CtClass ctClass, JarArchiveComparator.ArchiveType archiveType, java.util.Map<java.lang.String,javassist.CtClass> map)private voidcomputeAnnotationChanges(java.util.List<JApiAnnotation> annotations, Optional<javassist.CtClass> oldClassOptional, Optional<javassist.CtClass> newClassOptional)private voidcomputeFieldChanges(java.util.List<JApiField> fields, Optional<javassist.CtClass> oldClassOptional, Optional<javassist.CtClass> newClassOptional)private voidcomputeInterfaceChanges(java.util.List<JApiImplementedInterface> interfacesArg, Optional<javassist.CtClass> oldClassOptional, Optional<javassist.CtClass> newClassOptional)private voidcomputeMethodChanges(JApiClass jApiClass, Optional<javassist.CtClass> oldClassOptional, Optional<javassist.CtClass> newClassOptional)private java.util.Map<java.lang.String,javassist.CtConstructor>createConstructorMap(Optional<javassist.CtClass> ctClass)private java.util.Map<java.lang.String,java.util.List<javassist.CtMethod>>createMethodMap(Optional<javassist.CtClass> ctClassOptional)private JApiChangeStatusevaluateChangeStatus(JApiChangeStatus changeStatus)private JApiModifier<AbstractModifier>extractAbstractModifier(Optional<javassist.CtClass> oldClassOptional, Optional<javassist.CtClass> newClassOptional)private JApiModifier<AccessModifier>extractAccessModifier(Optional<javassist.CtClass> oldClassOptional, Optional<javassist.CtClass> newClassOptional)private JApiClassFileFormatVersionextractClassFileFormatVersion(Optional<javassist.CtClass> oldClassOptional, Optional<javassist.CtClass> newClassOptional)private JApiModifier<FinalModifier>extractFinalModifier(Optional<javassist.CtClass> oldClassOptional, Optional<javassist.CtClass> newClassOptional)private JApiModifier<StaticModifier>extractStaticModifier(Optional<javassist.CtClass> oldClassOptional, Optional<javassist.CtClass> newClassOptional)private JApiSuperclassextractSuperclass(Optional<javassist.CtClass> oldClassOptional, Optional<javassist.CtClass> newClassOptional)private JApiAttribute<SyntheticAttribute>extractSyntheticAttribute(Optional<javassist.CtClass> oldClassOptional, Optional<javassist.CtClass> newClassOptional)private JApiModifier<SyntheticModifier>extractSyntheticModifier(Optional<javassist.CtClass> oldClassOptional, Optional<javassist.CtClass> newClassOptional)private Optional<javassist.CtMethod>findMatchingMethod(javassist.CtMethod method, java.util.List<javassist.CtMethod> candidates)JApiModifier<AbstractModifier>getAbstractModifier()Returns the abstract modifier.JApiModifier<AccessModifier>getAccessModifier()Returns the access modifier.java.util.List<JApiAnnotation>getAnnotations()Returns a list of annotations asJApiAnnotation.java.util.List<JApiAttribute<? extends java.lang.Enum<?>>>getAttributes()JApiChangeStatusgetChangeStatus()Returns the change status of this element.JApiClassFileFormatVersiongetClassFileFormatVersion()JApiClassTypegetClassType()java.util.List<JApiCompatibilityChange>getCompatibilityChanges()Returns all compatibility changes.java.util.List<JApiConstructor>getConstructors()java.util.List<JApiField>getFields()JApiModifier<FinalModifier>getFinalModifier()Returns the final modifier.java.lang.StringgetFullyQualifiedName()java.util.List<JApiImplementedInterface>getInterfaces()JApiJavaObjectSerializationCompatibility.JApiJavaObjectSerializationChangeStatusgetJavaObjectSerializationCompatible()Returns if this class is serializable and if it has changed in a compatible or incompatible way.java.lang.StringgetJavaObjectSerializationCompatibleAsString()java.util.List<JApiMethod>getMethods()java.util.List<? extends JApiModifier<? extends java.lang.Enum<? extends java.lang.Enum<?>>>>getModifiers()Returns a list of modifiers.Optional<javassist.CtClass>getNewClass()Optional<javassist.CtClass>getOldClass()JApiSerialVersionUidgetSerialVersionUid()Returns theJApiSerialVersionUidJApiModifier<StaticModifier>getStaticModifier()Returns the static modifier.JApiSuperclassgetSuperclass()private Optional<javassist.CtClass>getSuperclass(javassist.CtClass ctClass)JApiAttribute<SyntheticAttribute>getSyntheticAttribute()JApiModifier<SyntheticModifier>getSyntheticModifier()Returns the synthetic modifier.private booleanincludeConstructor(JApiConstructor jApiConstructor)private booleanincludeField(JApiField jApiField)private booleanincludeMethod(JApiMethod jApiMethod)booleanisBinaryCompatible()Returns true if this element has changed binary compatible.booleanisChangeCausedByClassElement()booleanisSourceCompatible()Returns true if this element has changed source compatible.(package private) voidsetJavaObjectSerializationCompatible(JApiJavaObjectSerializationCompatibility.JApiJavaObjectSerializationChangeStatus jApiJavaObjectSerializationChangeStatus)private voidsortConstructorsIntoLists(JApiClass jApiClass, java.util.Map<java.lang.String,javassist.CtConstructor> oldConstructorsMap, java.util.Map<java.lang.String,javassist.CtConstructor> newConstructorsMap)private voidsortMethodsIntoLists(JApiClass jApiClass, java.util.Map<java.lang.String,java.util.List<javassist.CtMethod>> oldMethodsMap, java.util.Map<java.lang.String,java.util.List<javassist.CtMethod>> newMethodsMap)java.lang.StringtoString()
-
-
-
Field Detail
-
jarArchiveComparator
private final JarArchiveComparator jarArchiveComparator
-
fullyQualifiedName
private final java.lang.String fullyQualifiedName
-
classType
private final JApiClassType classType
-
options
private final JarArchiveComparatorOptions options
-
oldClass
private final Optional<javassist.CtClass> oldClass
-
newClass
private final Optional<javassist.CtClass> newClass
-
changeStatus
private final JApiChangeStatus changeStatus
-
superclass
private final JApiSuperclass superclass
-
interfaces
private final java.util.List<JApiImplementedInterface> interfaces
-
fields
private final java.util.List<JApiField> fields
-
constructors
private final java.util.List<JApiConstructor> constructors
-
methods
private final java.util.List<JApiMethod> methods
-
annotations
private final java.util.List<JApiAnnotation> annotations
-
accessModifier
private final JApiModifier<AccessModifier> accessModifier
-
finalModifier
private final JApiModifier<FinalModifier> finalModifier
-
staticModifier
private final JApiModifier<StaticModifier> staticModifier
-
abstractModifier
private final JApiModifier<AbstractModifier> abstractModifier
-
syntheticModifier
private final JApiModifier<SyntheticModifier> syntheticModifier
-
syntheticAttribute
private final JApiAttribute<SyntheticAttribute> syntheticAttribute
-
compatibilityChanges
private final java.util.List<JApiCompatibilityChange> compatibilityChanges
-
jApiSerialVersionUid
private final JApiSerialVersionUid jApiSerialVersionUid
-
classFileFormatVersion
private final JApiClassFileFormatVersion classFileFormatVersion
-
changeCausedByClassElement
private boolean changeCausedByClassElement
-
jApiJavaObjectSerializationChangeStatus
private JApiJavaObjectSerializationCompatibility.JApiJavaObjectSerializationChangeStatus jApiJavaObjectSerializationChangeStatus
-
-
Constructor Detail
-
JApiClass
public JApiClass(JarArchiveComparator jarArchiveComparator, java.lang.String fullyQualifiedName, Optional<javassist.CtClass> oldClass, Optional<javassist.CtClass> newClass, JApiChangeStatus changeStatus, JApiClassType classType)
-
-
Method Detail
-
extractClassFileFormatVersion
private JApiClassFileFormatVersion extractClassFileFormatVersion(Optional<javassist.CtClass> oldClassOptional, Optional<javassist.CtClass> newClassOptional)
-
computeAnnotationChanges
private void computeAnnotationChanges(java.util.List<JApiAnnotation> annotations, Optional<javassist.CtClass> oldClassOptional, Optional<javassist.CtClass> newClassOptional)
-
extractSyntheticAttribute
private JApiAttribute<SyntheticAttribute> extractSyntheticAttribute(Optional<javassist.CtClass> oldClassOptional, Optional<javassist.CtClass> newClassOptional)
-
computeFieldChanges
private void computeFieldChanges(java.util.List<JApiField> fields, Optional<javassist.CtClass> oldClassOptional, Optional<javassist.CtClass> newClassOptional)
-
includeField
private boolean includeField(JApiField jApiField)
-
buildFieldMap
private java.util.Map<java.lang.String,javassist.CtField> buildFieldMap(javassist.CtClass ctClass)
-
extractSuperclass
private JApiSuperclass extractSuperclass(Optional<javassist.CtClass> oldClassOptional, Optional<javassist.CtClass> newClassOptional)
-
getSuperclass
private Optional<javassist.CtClass> getSuperclass(javassist.CtClass ctClass)
-
computeInterfaceChanges
private void computeInterfaceChanges(java.util.List<JApiImplementedInterface> interfacesArg, Optional<javassist.CtClass> oldClassOptional, Optional<javassist.CtClass> newClassOptional)
-
buildInterfaceMap
private java.util.Map<java.lang.String,javassist.CtClass> buildInterfaceMap(javassist.CtClass ctClass, JarArchiveComparator.ArchiveType archiveType)
-
buildInterfaceMap
private void buildInterfaceMap(javassist.CtClass ctClass, JarArchiveComparator.ArchiveType archiveType, java.util.Map<java.lang.String,javassist.CtClass> map)
-
buildInterfaceMap
private void buildInterfaceMap(JarArchiveComparator.ArchiveType archiveType, java.util.Map<java.lang.String,javassist.CtClass> map, javassist.CtClass ctInterface) throws javassist.NotFoundException
- Throws:
javassist.NotFoundException
-
computeMethodChanges
private void computeMethodChanges(JApiClass jApiClass, Optional<javassist.CtClass> oldClassOptional, Optional<javassist.CtClass> newClassOptional)
-
sortMethodsIntoLists
private void sortMethodsIntoLists(JApiClass jApiClass, java.util.Map<java.lang.String,java.util.List<javassist.CtMethod>> oldMethodsMap, java.util.Map<java.lang.String,java.util.List<javassist.CtMethod>> newMethodsMap)
-
findMatchingMethod
private Optional<javassist.CtMethod> findMatchingMethod(javassist.CtMethod method, java.util.List<javassist.CtMethod> candidates)
-
includeMethod
private boolean includeMethod(JApiMethod jApiMethod)
-
sortConstructorsIntoLists
private void sortConstructorsIntoLists(JApiClass jApiClass, java.util.Map<java.lang.String,javassist.CtConstructor> oldConstructorsMap, java.util.Map<java.lang.String,javassist.CtConstructor> newConstructorsMap)
-
includeConstructor
private boolean includeConstructor(JApiConstructor jApiConstructor)
-
addParametersToMethod
private void addParametersToMethod(MethodDescriptorParser methodDescriptorParser, JApiBehavior jApiMethod)
-
createMethodMap
private java.util.Map<java.lang.String,java.util.List<javassist.CtMethod>> createMethodMap(Optional<javassist.CtClass> ctClassOptional)
-
createConstructorMap
private java.util.Map<java.lang.String,javassist.CtConstructor> createConstructorMap(Optional<javassist.CtClass> ctClass)
-
evaluateChangeStatus
private JApiChangeStatus evaluateChangeStatus(JApiChangeStatus changeStatus)
-
extractStaticModifier
private JApiModifier<StaticModifier> extractStaticModifier(Optional<javassist.CtClass> oldClassOptional, Optional<javassist.CtClass> newClassOptional)
-
extractFinalModifier
private JApiModifier<FinalModifier> extractFinalModifier(Optional<javassist.CtClass> oldClassOptional, Optional<javassist.CtClass> newClassOptional)
-
extractAccessModifier
private JApiModifier<AccessModifier> extractAccessModifier(Optional<javassist.CtClass> oldClassOptional, Optional<javassist.CtClass> newClassOptional)
-
extractAbstractModifier
private JApiModifier<AbstractModifier> extractAbstractModifier(Optional<javassist.CtClass> oldClassOptional, Optional<javassist.CtClass> newClassOptional)
-
extractSyntheticModifier
private JApiModifier<SyntheticModifier> extractSyntheticModifier(Optional<javassist.CtClass> oldClassOptional, Optional<javassist.CtClass> newClassOptional)
-
getJavaObjectSerializationCompatible
public JApiJavaObjectSerializationCompatibility.JApiJavaObjectSerializationChangeStatus getJavaObjectSerializationCompatible()
Description copied from interface:JApiJavaObjectSerializationCompatibilityReturns if this class is serializable and if it has changed in a compatible or incompatible way.- Specified by:
getJavaObjectSerializationCompatiblein interfaceJApiJavaObjectSerializationCompatibility- Returns:
- the type of change
-
getJavaObjectSerializationCompatibleAsString
public java.lang.String getJavaObjectSerializationCompatibleAsString()
-
getSerialVersionUid
public JApiSerialVersionUid getSerialVersionUid()
Description copied from interface:JApiJavaObjectSerializationCompatibilityReturns theJApiSerialVersionUid- Specified by:
getSerialVersionUidin interfaceJApiJavaObjectSerializationCompatibility- Returns:
- the serialVersionUID
-
setJavaObjectSerializationCompatible
void setJavaObjectSerializationCompatible(JApiJavaObjectSerializationCompatibility.JApiJavaObjectSerializationChangeStatus jApiJavaObjectSerializationChangeStatus)
-
getChangeStatus
public JApiChangeStatus getChangeStatus()
Description copied from interface:JApiHasChangeStatusReturns the change status of this element.- Specified by:
getChangeStatusin interfaceJApiHasChangeStatus- Returns:
- the change status of this element
-
getFullyQualifiedName
public java.lang.String getFullyQualifiedName()
-
getNewClass
public Optional<javassist.CtClass> getNewClass()
-
getOldClass
public Optional<javassist.CtClass> getOldClass()
-
getModifiers
public java.util.List<? extends JApiModifier<? extends java.lang.Enum<? extends java.lang.Enum<?>>>> getModifiers()
Description copied from interface:JApiHasModifiersReturns a list of modifiers.- Specified by:
getModifiersin interfaceJApiHasModifiers- Returns:
- a list of modifiers
-
getSuperclass
public JApiSuperclass getSuperclass()
-
getInterfaces
public java.util.List<JApiImplementedInterface> getInterfaces()
-
getConstructors
public java.util.List<JApiConstructor> getConstructors()
-
getMethods
public java.util.List<JApiMethod> getMethods()
-
getFields
public java.util.List<JApiField> getFields()
-
getClassType
public JApiClassType getClassType()
-
getFinalModifier
public JApiModifier<FinalModifier> getFinalModifier()
Description copied from interface:JApiHasFinalModifierReturns the final modifier.- Specified by:
getFinalModifierin interfaceJApiHasFinalModifier- Returns:
- the final modifier
-
getStaticModifier
public JApiModifier<StaticModifier> getStaticModifier()
Description copied from interface:JApiHasStaticModifierReturns the static modifier.- Specified by:
getStaticModifierin interfaceJApiHasStaticModifier- Returns:
- the static modifier
-
getAccessModifier
public JApiModifier<AccessModifier> getAccessModifier()
Description copied from interface:JApiHasAccessModifierReturns the access modifier.- Specified by:
getAccessModifierin interfaceJApiHasAccessModifier- Returns:
- the access modifier
-
getAbstractModifier
public JApiModifier<AbstractModifier> getAbstractModifier()
Description copied from interface:JApiHasAbstractModifierReturns the abstract modifier.- Specified by:
getAbstractModifierin interfaceJApiHasAbstractModifier- Returns:
- the abstract modifier
-
getSyntheticModifier
public JApiModifier<SyntheticModifier> getSyntheticModifier()
Description copied from interface:JApiHasSyntheticModifierReturns the synthetic modifier.- Specified by:
getSyntheticModifierin interfaceJApiHasSyntheticModifier- Returns:
- the synthetic modifier
-
getSyntheticAttribute
public JApiAttribute<SyntheticAttribute> getSyntheticAttribute()
- Specified by:
getSyntheticAttributein interfaceJApiHasSyntheticAttribute
-
getAttributes
public java.util.List<JApiAttribute<? extends java.lang.Enum<?>>> getAttributes()
-
isBinaryCompatible
public boolean isBinaryCompatible()
Description copied from interface:JApiCompatibilityReturns true if this element has changed binary compatible.- Specified by:
isBinaryCompatiblein interfaceJApiCompatibility- Returns:
- true if this element has changed binary compatible
-
isSourceCompatible
public boolean isSourceCompatible()
Description copied from interface:JApiCompatibilityReturns true if this element has changed source compatible.- Specified by:
isSourceCompatiblein interfaceJApiCompatibility- Returns:
- true if this element has changed source compatible
-
getAnnotations
public java.util.List<JApiAnnotation> getAnnotations()
Description copied from interface:JApiHasAnnotationsReturns a list of annotations asJApiAnnotation.- Specified by:
getAnnotationsin interfaceJApiHasAnnotations- Returns:
- a list of annotations as
JApiAnnotation
-
isChangeCausedByClassElement
public boolean isChangeCausedByClassElement()
-
getCompatibilityChanges
public java.util.List<JApiCompatibilityChange> getCompatibilityChanges()
Description copied from interface:JApiCompatibilityReturns all compatibility changes.- Specified by:
getCompatibilityChangesin interfaceJApiCompatibility- Returns:
- a list of compatibility changes
-
getClassFileFormatVersion
public JApiClassFileFormatVersion getClassFileFormatVersion()
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-