net.amygdalum.testrecorder.profile.SerializationProfile Maven / Gradle / Ivy
package net.amygdalum.testrecorder.profile;
import static net.amygdalum.testrecorder.extensionpoint.ExtensionStrategy.OVERRIDING;
import java.util.List;
import net.amygdalum.testrecorder.extensionpoint.ExtensionPoint;
@ExtensionPoint(strategy=OVERRIDING)
public interface SerializationProfile {
List getClasses();
/**
* Configuring {@link #getFieldExclusions()} enables excluding specified fields from serialization. Exclude fields
* from serializationif they are irrelevant or not easily serialized.
*
* {@link net.amygdalum.testrecorder.profile.Fields} provides some default predicates to put into this list.
*
* @return a list of Fields/Predicates describing the fields to be excluded.
*/
List getFieldExclusions();
/**
* Configuring {@link #getFieldFacades()} enables facading specified fields at serialization. Facading means that a stub of
* the instance is recorded, but the internal state is skipped. Facade fields if their internal state is not relevant
* (yet their behavior may be).
*
* {@link net.amygdalum.testrecorder.profile.Fields} provides some default predicates to put into this list.
*
* @return a list of Fields/Predicates describing the fields to be facaded.
*/
List getFieldFacades();
/**
* Configuring {@link #getClassExclusions()} enables excluding specified classes from serialization. Exclude classes
* from serialization if they are irrelevant or not easily serialized.
*
* {@link net.amygdalum.testrecorder.profile.Classes} provides some default predicates to put into this list.
*
* @return a list of Classes/Predicates describing the classes to be excluded.
*/
List getClassExclusions();
/**
* Configuring {@link #getClassFacades()} enables facading specified classes at serialization. Facading means that a stub of
* the instance is recorded, but the internal state is skipped. Facade classes if their internal state is not relevant
* (yet their behavior may be).
*
* {@link net.amygdalum.testrecorder.profile.Classes} provides some default predicates to put into this list.
*
* @return a list of Classes/Predicates describing the classes to be facaded.
*/
List getClassFacades();
/**
* Configuring {@link #getGlobalFields()} enables to extend serialization by global/static fields. Global/Static
* fields are not tracked by default and must be added to the configuration if needed.
*
* {@link net.amygdalum.testrecorder.profile.Fields} provides some default predicates to specify global variables/static fields.
*
* @see Global
* @return a list of Fields/Predicates describing the fields to be serialized as global variables.
*/
List getGlobalFields();
/**
* Configuring {@link #getInputs()} enables to extend serialization by input methods.
*
* We define input as state that is dependent on sources not controlled by the JVM (e.g. filesystem, webservices,
* random numbers, date/time). Methods that provide such input as arguments or results can be specified as input methods
* by adding a specification to this list.
*
* {@link net.amygdalum.testrecorder.profile.Methods} provides some default predicates to specify methods that provide input.
*
* @see Input
* @return a list of Methods/Predicates describing the methods providing input.
*/
List getInputs();
/**
* Configuring {@link #getOutputs()} enables to extend serialization by output methods.
*
* We define output as state that is consumed by systems not controlled by the JVM (e.g. filesystem, webservices, browser).
* Methods that consume such output as arguments can be specified as output methods by adding a specification to this list.
*
* {@link net.amygdalum.testrecorder.profile.Methods} provides some default predicates to specify methods that provide input.
*
* @see Output
* @return a list of Methods/Predicates describing the methods consuming output.
*/
List getOutputs();
/**
* Configuring {@link #getRecorded()} enables to extend serialization by recorded methods.
*
* {@link net.amygdalum.testrecorder.profile.Methods} provides some default predicates to specify methods that provide input.
*
* @see Recorded
* @return a list of Methods/Predicates describing the methods that should be recorded.
*/
List getRecorded();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy