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 void
addParametersToMethod(MethodDescriptorParser methodDescriptorParser, JApiBehavior jApiMethod)
private java.util.Map<java.lang.String,javassist.CtField>
buildFieldMap(javassist.CtClass ctClass)
private void
buildInterfaceMap(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 void
buildInterfaceMap(javassist.CtClass ctClass, JarArchiveComparator.ArchiveType archiveType, java.util.Map<java.lang.String,javassist.CtClass> map)
private void
computeAnnotationChanges(java.util.List<JApiAnnotation> annotations, Optional<javassist.CtClass> oldClassOptional, Optional<javassist.CtClass> newClassOptional)
private void
computeFieldChanges(java.util.List<JApiField> fields, Optional<javassist.CtClass> oldClassOptional, Optional<javassist.CtClass> newClassOptional)
private void
computeInterfaceChanges(java.util.List<JApiImplementedInterface> interfacesArg, Optional<javassist.CtClass> oldClassOptional, Optional<javassist.CtClass> newClassOptional)
private void
computeMethodChanges(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 JApiChangeStatus
evaluateChangeStatus(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 JApiClassFileFormatVersion
extractClassFileFormatVersion(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 JApiSuperclass
extractSuperclass(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()
JApiChangeStatus
getChangeStatus()
Returns the change status of this element.JApiClassFileFormatVersion
getClassFileFormatVersion()
JApiClassType
getClassType()
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.String
getFullyQualifiedName()
java.util.List<JApiImplementedInterface>
getInterfaces()
JApiJavaObjectSerializationCompatibility.JApiJavaObjectSerializationChangeStatus
getJavaObjectSerializationCompatible()
Returns if this class is serializable and if it has changed in a compatible or incompatible way.java.lang.String
getJavaObjectSerializationCompatibleAsString()
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()
JApiSerialVersionUid
getSerialVersionUid()
Returns theJApiSerialVersionUid
JApiModifier<StaticModifier>
getStaticModifier()
Returns the static modifier.JApiSuperclass
getSuperclass()
private Optional<javassist.CtClass>
getSuperclass(javassist.CtClass ctClass)
JApiAttribute<SyntheticAttribute>
getSyntheticAttribute()
JApiModifier<SyntheticModifier>
getSyntheticModifier()
Returns the synthetic modifier.private boolean
includeConstructor(JApiConstructor jApiConstructor)
private boolean
includeField(JApiField jApiField)
private boolean
includeMethod(JApiMethod jApiMethod)
boolean
isBinaryCompatible()
Returns true if this element has changed binary compatible.boolean
isChangeCausedByClassElement()
boolean
isSourceCompatible()
Returns true if this element has changed source compatible.(package private) void
setJavaObjectSerializationCompatible(JApiJavaObjectSerializationCompatibility.JApiJavaObjectSerializationChangeStatus jApiJavaObjectSerializationChangeStatus)
private void
sortConstructorsIntoLists(JApiClass jApiClass, java.util.Map<java.lang.String,javassist.CtConstructor> oldConstructorsMap, java.util.Map<java.lang.String,javassist.CtConstructor> newConstructorsMap)
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)
java.lang.String
toString()
-
-
-
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:JApiJavaObjectSerializationCompatibility
Returns if this class is serializable and if it has changed in a compatible or incompatible way.- Specified by:
getJavaObjectSerializationCompatible
in interfaceJApiJavaObjectSerializationCompatibility
- Returns:
- the type of change
-
getJavaObjectSerializationCompatibleAsString
public java.lang.String getJavaObjectSerializationCompatibleAsString()
-
getSerialVersionUid
public JApiSerialVersionUid getSerialVersionUid()
Description copied from interface:JApiJavaObjectSerializationCompatibility
Returns theJApiSerialVersionUid
- Specified by:
getSerialVersionUid
in interfaceJApiJavaObjectSerializationCompatibility
- Returns:
- the serialVersionUID
-
setJavaObjectSerializationCompatible
void setJavaObjectSerializationCompatible(JApiJavaObjectSerializationCompatibility.JApiJavaObjectSerializationChangeStatus jApiJavaObjectSerializationChangeStatus)
-
getChangeStatus
public JApiChangeStatus getChangeStatus()
Description copied from interface:JApiHasChangeStatus
Returns the change status of this element.- Specified by:
getChangeStatus
in 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:JApiHasModifiers
Returns a list of modifiers.- Specified by:
getModifiers
in 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:JApiHasFinalModifier
Returns the final modifier.- Specified by:
getFinalModifier
in interfaceJApiHasFinalModifier
- Returns:
- the final modifier
-
getStaticModifier
public JApiModifier<StaticModifier> getStaticModifier()
Description copied from interface:JApiHasStaticModifier
Returns the static modifier.- Specified by:
getStaticModifier
in interfaceJApiHasStaticModifier
- Returns:
- the static modifier
-
getAccessModifier
public JApiModifier<AccessModifier> getAccessModifier()
Description copied from interface:JApiHasAccessModifier
Returns the access modifier.- Specified by:
getAccessModifier
in interfaceJApiHasAccessModifier
- Returns:
- the access modifier
-
getAbstractModifier
public JApiModifier<AbstractModifier> getAbstractModifier()
Description copied from interface:JApiHasAbstractModifier
Returns the abstract modifier.- Specified by:
getAbstractModifier
in interfaceJApiHasAbstractModifier
- Returns:
- the abstract modifier
-
getSyntheticModifier
public JApiModifier<SyntheticModifier> getSyntheticModifier()
Description copied from interface:JApiHasSyntheticModifier
Returns the synthetic modifier.- Specified by:
getSyntheticModifier
in interfaceJApiHasSyntheticModifier
- Returns:
- the synthetic modifier
-
getSyntheticAttribute
public JApiAttribute<SyntheticAttribute> getSyntheticAttribute()
- Specified by:
getSyntheticAttribute
in interfaceJApiHasSyntheticAttribute
-
getAttributes
public java.util.List<JApiAttribute<? extends java.lang.Enum<?>>> getAttributes()
-
isBinaryCompatible
public boolean isBinaryCompatible()
Description copied from interface:JApiCompatibility
Returns true if this element has changed binary compatible.- Specified by:
isBinaryCompatible
in interfaceJApiCompatibility
- Returns:
- true if this element has changed binary compatible
-
isSourceCompatible
public boolean isSourceCompatible()
Description copied from interface:JApiCompatibility
Returns true if this element has changed source compatible.- Specified by:
isSourceCompatible
in interfaceJApiCompatibility
- Returns:
- true if this element has changed source compatible
-
getAnnotations
public java.util.List<JApiAnnotation> getAnnotations()
Description copied from interface:JApiHasAnnotations
Returns a list of annotations asJApiAnnotation
.- Specified by:
getAnnotations
in interfaceJApiHasAnnotations
- Returns:
- a list of annotations as
JApiAnnotation
-
isChangeCausedByClassElement
public boolean isChangeCausedByClassElement()
-
getCompatibilityChanges
public java.util.List<JApiCompatibilityChange> getCompatibilityChanges()
Description copied from interface:JApiCompatibility
Returns all compatibility changes.- Specified by:
getCompatibilityChanges
in interfaceJApiCompatibility
- Returns:
- a list of compatibility changes
-
getClassFileFormatVersion
public JApiClassFileFormatVersion getClassFileFormatVersion()
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-