package org.projectusus.core.filerelations.model;
import java.util.Set;
import org.eclipse.jdt.core.IJavaElement;
import org.projectusus.c4j.C4JFileWriter;
import org.projectusus.c4j.UsusContractBase;
public class PackagenameContract extends UsusContractBase<Packagename> {
private int numberOfClasses;
private boolean packageContainsClass;
private String targetString() {
return " Target: " + m_target;
}
public PackagenameContract( Packagename target ) {
super( target );
}
public void classInvariant() {
assertThat( Packagename.getAll().contains( m_target ), "CONTRADICTION?! Element is contained in list of all:" + targetString() );
}
public static void pre_clear() {
// TODO no pre-condition identified yet
}
public static void post_clear() {
C4JFileWriter.assertStatic( Packagename.getAll().isEmpty(), "Clear removes all Packagename objects." );
}
public static void pre_of( String name, IJavaElement javaElement ) {
// TODO Auto-generated pre-condition
C4JFileWriter.assertStatic( name != null, "name_not_null" );
C4JFileWriter.assertStatic( javaElement != null, "javaElement_not_null" );
}
public static void post_of( String name, IJavaElement javaElement ) {
Packagename returnValue = (Packagename)getReturnValue();
C4JFileWriter.assertStatic( Packagename.getAll().contains( returnValue ), "List of all contains Packagename " + returnValue );
}
public static void pre_getAll() {
// TODO no pre-condition identified yet
}
public static void post_getAll() {
Set<Packagename> returnValue = (Set<Packagename>)getReturnValue();
// TODO no post-condition identified yet
}
public void pre_addClass( ClassDescriptor clazz ) {
assertThat( clazz != null, "clazz_not_null" );
numberOfClasses = m_target.numberOfClasses();
packageContainsClass = m_target.containsClass( clazz );
}
public void post_addClass( ClassDescriptor clazz ) {
if( packageContainsClass ) {
assertThat( numberOfClasses == m_target.numberOfClasses(), "Adding an already contained class does not change the class count for " + targetString() );
} else {
assertThat( numberOfClasses + 1 == m_target.numberOfClasses(), "Adding an unknown class increases the class count by 1 for " + targetString() );
}
assertThat( m_target.containsClass( clazz ), "Added class is now contained in package " + targetString() );
}
public void pre_removeClass( ClassDescriptor clazz ) {
assertThat( clazz != null, "clazz_not_null" );
numberOfClasses = m_target.numberOfClasses();
}
public void post_removeClass( ClassDescriptor clazz ) {
assertThat( numberOfClasses - 1 == m_target.numberOfClasses(), "Removing a class reduces the class count by 1 for " + targetString() );
assertThat( !m_target.containsClass( clazz ), "Removed class is no longer contained in package" + targetString() );
if( m_target.numberOfClasses() == 0 ) {
assertThat( !Packagename.getAll().contains( m_target ), "CONTRADICTION?! Packages w/o classes are removed from list" + targetString() );
}
}
public void pre_containsClass( ClassDescriptor clazz ) {
// TODO Auto-generated pre-condition
assertThat( clazz != null, "clazz_not_null" );
}
public void post_containsClass( ClassDescriptor clazz ) {
boolean returnValue = ((Boolean)getReturnValue()).booleanValue();
// TODO no post-condition identified yet
}
public void pre_numberOfClasses() {
// TODO no pre-condition identified yet
}
public void post_numberOfClasses() {
int returnValue = ((Integer)getReturnValue()).intValue();
// TODO no post-condition identified yet
}
public void pre_getJavaElement() {
// TODO no pre-condition identified yet
}
public void post_getJavaElement() {
IJavaElement returnValue = (IJavaElement)getReturnValue();
// TODO no post-condition identified yet
}
public void pre_getRelationTo( Packagename target ) {
// TODO Auto-generated pre-condition
assertThat( target != null, "target_not_null" );
}
public void post_getRelationTo( Packagename target ) {
Relation<Packagename> returnValue = (Relation<Packagename>)getReturnValue();
// TODO no post-condition identified yet
}
}