/*PLEASE DO NOT EDIT THIS CODE*/
/*This code was generated using the UMPLE 1.35.0.7523.c616a4dce modeling language!*/
import java.util.*;
// line 1 "DuplicateInterfaceAssociationMethodsTest1.ump"
public class First implements I
{
//------------------------
// MEMBER VARIABLES
//------------------------
//First Associations
private List<Second> seconds;
//------------------------
// CONSTRUCTOR
//------------------------
public First()
{
seconds = new ArrayList<Second>();
}
//------------------------
// INTERFACE
//------------------------
/* Code from template association_GetMany */
public Second getSecond(int index)
{
Second aSecond = seconds.get(index);
return aSecond;
}
public List<Second> getSeconds()
{
List<Second> newSeconds = Collections.unmodifiableList(seconds);
return newSeconds;
}
public int numberOfSeconds()
{
int number = seconds.size();
return number;
}
public boolean hasSeconds()
{
boolean has = seconds.size() > 0;
return has;
}
public int indexOfSecond(Second aSecond)
{
int index = seconds.indexOf(aSecond);
return index;
}
/* Code from template association_MinimumNumberOfMethod */
public static int minimumNumberOfSeconds()
{
return 0;
}
/* Code from template association_AddManyToManyMethod */
public boolean addSecond(Second aSecond)
{
boolean wasAdded = false;
if (seconds.contains(aSecond)) { return false; }
seconds.add(aSecond);
if (aSecond.indexOfFirst(this) != -1)
{
wasAdded = true;
}
else
{
wasAdded = aSecond.addFirst(this);
if (!wasAdded)
{
seconds.remove(aSecond);
}
}
return wasAdded;
}
/* Code from template association_RemoveMany */
public boolean removeSecond(Second aSecond)
{
boolean wasRemoved = false;
if (!seconds.contains(aSecond))
{
return wasRemoved;
}
int oldIndex = seconds.indexOf(aSecond);
seconds.remove(oldIndex);
if (aSecond.indexOfFirst(this) == -1)
{
wasRemoved = true;
}
else
{
wasRemoved = aSecond.removeFirst(this);
if (!wasRemoved)
{
seconds.add(oldIndex,aSecond);
}
}
return wasRemoved;
}
/* Code from template association_AddIndexControlFunctions */
public boolean addSecondAt(Second aSecond, int index)
{
boolean wasAdded = false;
if(addSecond(aSecond))
{
if(index < 0 ) { index = 0; }
if(index > numberOfSeconds()) { index = numberOfSeconds() - 1; }
seconds.remove(aSecond);
seconds.add(index, aSecond);
wasAdded = true;
}
return wasAdded;
}
public boolean addOrMoveSecondAt(Second aSecond, int index)
{
boolean wasAdded = false;
if(seconds.contains(aSecond))
{
if(index < 0 ) { index = 0; }
if(index > numberOfSeconds()) { index = numberOfSeconds() - 1; }
seconds.remove(aSecond);
seconds.add(index, aSecond);
wasAdded = true;
}
else
{
wasAdded = addSecondAt(aSecond, index);
}
return wasAdded;
}
public void delete()
{
ArrayList<Second> copyOfSeconds = new ArrayList<Second>(seconds);
seconds.clear();
for(Second aSecond : copyOfSeconds)
{
aSecond.removeFirst(this);
}
}
@Override
public boolean setSecond(Second aSecond){
return false;
}
@Override
public boolean setSeconds(Second... newSeconds){
return false;
}
@Override
public boolean isNumberOfSecondsValid(){
return false;
}
}
/*PLEASE DO NOT EDIT THIS CODE*/
/*This code was generated using the UMPLE 1.35.0.7523.c616a4dce modeling language!*/
// line 1 "DuplicateInterfaceAssociationMethodsTest2.ump"
public class First implements I
{
//------------------------
// MEMBER VARIABLES
//------------------------
//First Associations
private Second second;
//------------------------
// CONSTRUCTOR
//------------------------
public First(Second aSecond)
{
boolean didAddSecond = setSecond(aSecond);
if (!didAddSecond)
{
throw new RuntimeException("Unable to create first due to second. See https://manual.umple.org?RE002ViolationofAssociationMultiplicity.html");
}
}
//------------------------
// INTERFACE
//------------------------
/* Code from template association_GetOne */
public Second getSecond()
{
return second;
}
/* Code from template association_SetOneToMany */
public boolean setSecond(Second aSecond)
{
boolean wasSet = false;
if (aSecond == null)
{
return wasSet;
}
Second existingSecond = second;
second = aSecond;
if (existingSecond != null && !existingSecond.equals(aSecond))
{
existingSecond.removeFirst(this);
}
second.addFirst(this);
wasSet = true;
return wasSet;
}
public void delete()
{
Second placeholderSecond = second;
this.second = null;
if(placeholderSecond != null)
{
placeholderSecond.removeFirst(this);
}
}
@Override
public boolean addSecond(Second aSecond){
return false;
}
@Override
public List<Second> getSeconds(){
return null;
}
@Override
public boolean setSeconds(Second... newSeconds){
return false;
}
@Override
public int numberOfSeconds(){
return 0;
}
@Override
public boolean hasSeconds(){
return false;
}
@Override
public int indexOfSecond(Second second){
return 0;
}
@Override
public boolean isNumberOfSecondsValid(){
return false;
}
@Override
public boolean removeSecond(Second second){
return false;
}
}
/*PLEASE DO NOT EDIT THIS CODE*/
/*This code was generated using the UMPLE 1.35.0.7523.c616a4dce modeling language!*/
import java.util.*;
// line 1 "DuplicateInterfaceAssociationMethodsTest3.ump"
public class First implements I
{
//------------------------
// MEMBER VARIABLES
//------------------------
//First Associations
private List<Second> seconds;
//------------------------
// CONSTRUCTOR
//------------------------
public First(Second... allSeconds)
{
seconds = new ArrayList<Second>();
boolean didAddSeconds = setSeconds(allSeconds);
if (!didAddSeconds)
{
throw new RuntimeException("Unable to create First, must have 1 to 5 seconds. See https://manual.umple.org?RE002ViolationofAssociationMultiplicity.html");
}
}
//------------------------
// INTERFACE
//------------------------
/* Code from template association_GetMany */
public Second getSecond(int index)
{
Second aSecond = seconds.get(index);
return aSecond;
}
public List<Second> getSeconds()
{
List<Second> newSeconds = Collections.unmodifiableList(seconds);
return newSeconds;
}
public int numberOfSeconds()
{
int number = seconds.size();
return number;
}
public boolean hasSeconds()
{
boolean has = seconds.size() > 0;
return has;
}
public int indexOfSecond(Second aSecond)
{
int index = seconds.indexOf(aSecond);
return index;
}
/* Code from template association_IsNumberOfValidMethod */
public boolean isNumberOfSecondsValid()
{
boolean isValid = numberOfSeconds() >= minimumNumberOfSeconds() && numberOfSeconds() <= maximumNumberOfSeconds();
return isValid;
}
/* Code from template association_MinimumNumberOfMethod */
public static int minimumNumberOfSeconds()
{
return 1;
}
/* Code from template association_MaximumNumberOfMethod */
public static int maximumNumberOfSeconds()
{
return 5;
}
/* Code from template association_AddManyToManyMethod */
public boolean addSecond(Second aSecond)
{
boolean wasAdded = false;
if (seconds.contains(aSecond)) { return false; }
if (numberOfSeconds() >= maximumNumberOfSeconds())
{
return wasAdded;
}
seconds.add(aSecond);
if (aSecond.indexOfFirst(this) != -1)
{
wasAdded = true;
}
else
{
wasAdded = aSecond.addFirst(this);
if (!wasAdded)
{
seconds.remove(aSecond);
}
}
return wasAdded;
}
/* Code from template association_AddMNToMany */
public boolean removeSecond(Second aSecond)
{
boolean wasRemoved = false;
if (!seconds.contains(aSecond))
{
return wasRemoved;
}
if (numberOfSeconds() <= minimumNumberOfSeconds())
{
return wasRemoved;
}
int oldIndex = seconds.indexOf(aSecond);
seconds.remove(oldIndex);
if (aSecond.indexOfFirst(this) == -1)
{
wasRemoved = true;
}
else
{
wasRemoved = aSecond.removeFirst(this);
if (!wasRemoved)
{
seconds.add(oldIndex,aSecond);
}
}
return wasRemoved;
}
/* Code from template association_SetMNToMany */
public boolean setSeconds(Second... newSeconds)
{
boolean wasSet = false;
ArrayList<Second> verifiedSeconds = new ArrayList<Second>();
for (Second aSecond : newSeconds)
{
if (verifiedSeconds.contains(aSecond))
{
continue;
}
verifiedSeconds.add(aSecond);
}
if (verifiedSeconds.size() != newSeconds.length || verifiedSeconds.size() < minimumNumberOfSeconds() || verifiedSeconds.size() > maximumNumberOfSeconds())
{
return wasSet;
}
ArrayList<Second> oldSeconds = new ArrayList<Second>(seconds);
seconds.clear();
for (Second aNewSecond : verifiedSeconds)
{
seconds.add(aNewSecond);
if (oldSeconds.contains(aNewSecond))
{
oldSeconds.remove(aNewSecond);
}
else
{
aNewSecond.addFirst(this);
}
}
for (Second anOldSecond : oldSeconds)
{
anOldSecond.removeFirst(this);
}
wasSet = true;
return wasSet;
}
/* Code from template association_AddIndexControlFunctions */
public boolean addSecondAt(Second aSecond, int index)
{
boolean wasAdded = false;
if(addSecond(aSecond))
{
if(index < 0 ) { index = 0; }
if(index > numberOfSeconds()) { index = numberOfSeconds() - 1; }
seconds.remove(aSecond);
seconds.add(index, aSecond);
wasAdded = true;
}
return wasAdded;
}
public boolean addOrMoveSecondAt(Second aSecond, int index)
{
boolean wasAdded = false;
if(seconds.contains(aSecond))
{
if(index < 0 ) { index = 0; }
if(index > numberOfSeconds()) { index = numberOfSeconds() - 1; }
seconds.remove(aSecond);
seconds.add(index, aSecond);
wasAdded = true;
}
else
{
wasAdded = addSecondAt(aSecond, index);
}
return wasAdded;
}
public void delete()
{
ArrayList<Second> copyOfSeconds = new ArrayList<Second>(seconds);
seconds.clear();
for(Second aSecond : copyOfSeconds)
{
aSecond.removeFirst(this);
}
}
@Override
public boolean setSecond(Second aSecond){
return false;
}
}
/*PLEASE DO NOT EDIT THIS CODE*/
/*This code was generated using the UMPLE 1.35.0.7523.c616a4dce modeling language!*/
import java.util.*;
// line 1 "DuplicateInterfaceAssociationMethodsTest4.ump"
public class First implements I
{
//------------------------
// MEMBER VARIABLES
//------------------------
//First Associations
private List<Second> seconds;
//------------------------
// CONSTRUCTOR
//------------------------
public First(Second... allSeconds)
{
seconds = new ArrayList<Second>();
boolean didAddSeconds = setSeconds(allSeconds);
if (!didAddSeconds)
{
throw new RuntimeException("Unable to create First, must have at least 1 seconds. See https://manual.umple.org?RE002ViolationofAssociationMultiplicity.html");
}
}
//------------------------
// INTERFACE
//------------------------
/* Code from template association_GetMany */
public Second getSecond(int index)
{
Second aSecond = seconds.get(index);
return aSecond;
}
public List<Second> getSeconds()
{
List<Second> newSeconds = Collections.unmodifiableList(seconds);
return newSeconds;
}
public int numberOfSeconds()
{
int number = seconds.size();
return number;
}
public boolean hasSeconds()
{
boolean has = seconds.size() > 0;
return has;
}
public int indexOfSecond(Second aSecond)
{
int index = seconds.indexOf(aSecond);
return index;
}
/* Code from template association_IsNumberOfValidMethod */
public boolean isNumberOfSecondsValid()
{
boolean isValid = numberOfSeconds() >= minimumNumberOfSeconds();
return isValid;
}
/* Code from template association_MinimumNumberOfMethod */
public static int minimumNumberOfSeconds()
{
return 1;
}
/* Code from template association_AddManyToManyMethod */
public boolean addSecond(Second aSecond)
{
boolean wasAdded = false;
if (seconds.contains(aSecond)) { return false; }
seconds.add(aSecond);
if (aSecond.indexOfFirst(this) != -1)
{
wasAdded = true;
}
else
{
wasAdded = aSecond.addFirst(this);
if (!wasAdded)
{
seconds.remove(aSecond);
}
}
return wasAdded;
}
/* Code from template association_AddMStarToMany */
public boolean removeSecond(Second aSecond)
{
boolean wasRemoved = false;
if (!seconds.contains(aSecond))
{
return wasRemoved;
}
if (numberOfSeconds() <= minimumNumberOfSeconds())
{
return wasRemoved;
}
int oldIndex = seconds.indexOf(aSecond);
seconds.remove(oldIndex);
if (aSecond.indexOfFirst(this) == -1)
{
wasRemoved = true;
}
else
{
wasRemoved = aSecond.removeFirst(this);
if (!wasRemoved)
{
seconds.add(oldIndex,aSecond);
}
}
return wasRemoved;
}
/* Code from template association_SetMStarToMany */
public boolean setSeconds(Second... newSeconds)
{
boolean wasSet = false;
ArrayList<Second> verifiedSeconds = new ArrayList<Second>();
for (Second aSecond : newSeconds)
{
if (verifiedSeconds.contains(aSecond))
{
continue;
}
verifiedSeconds.add(aSecond);
}
if (verifiedSeconds.size() != newSeconds.length || verifiedSeconds.size() < minimumNumberOfSeconds())
{
return wasSet;
}
ArrayList<Second> oldSeconds = new ArrayList<Second>(seconds);
seconds.clear();
for (Second aNewSecond : verifiedSeconds)
{
seconds.add(aNewSecond);
if (oldSeconds.contains(aNewSecond))
{
oldSeconds.remove(aNewSecond);
}
else
{
aNewSecond.addFirst(this);
}
}
for (Second anOldSecond : oldSeconds)
{
anOldSecond.removeFirst(this);
}
wasSet = true;
return wasSet;
}
/* Code from template association_AddIndexControlFunctions */
public boolean addSecondAt(Second aSecond, int index)
{
boolean wasAdded = false;
if(addSecond(aSecond))
{
if(index < 0 ) { index = 0; }
if(index > numberOfSeconds()) { index = numberOfSeconds() - 1; }
seconds.remove(aSecond);
seconds.add(index, aSecond);
wasAdded = true;
}
return wasAdded;
}
public boolean addOrMoveSecondAt(Second aSecond, int index)
{
boolean wasAdded = false;
if(seconds.contains(aSecond))
{
if(index < 0 ) { index = 0; }
if(index > numberOfSeconds()) { index = numberOfSeconds() - 1; }
seconds.remove(aSecond);
seconds.add(index, aSecond);
wasAdded = true;
}
else
{
wasAdded = addSecondAt(aSecond, index);
}
return wasAdded;
}
public void delete()
{
ArrayList<Second> copyOfSeconds = new ArrayList<Second>(seconds);
seconds.clear();
for(Second aSecond : copyOfSeconds)
{
aSecond.removeFirst(this);
}
}
@Override
public boolean setSecond(Second aSecond){
return false;
}
}
/*PLEASE DO NOT EDIT THIS CODE*/
/*This code was generated using the UMPLE 1.35.0.7523.c616a4dce modeling language!*/
import java.util.*;
// line 1 "DuplicateInterfaceAssociationMethodsTest5.ump"
public class First implements I
{
//------------------------
// MEMBER VARIABLES
//------------------------
//First Associations
private List<Second> seconds;
//------------------------
// CONSTRUCTOR
//------------------------
public First(Second... allSeconds)
{
seconds = new ArrayList<Second>();
boolean didAddSeconds = setSeconds(allSeconds);
if (!didAddSeconds)
{
throw new RuntimeException("Unable to create First, must have 5 seconds. See https://manual.umple.org?RE002ViolationofAssociationMultiplicity.html");
}
}
//------------------------
// INTERFACE
//------------------------
/* Code from template association_GetMany */
public Second getSecond(int index)
{
Second aSecond = seconds.get(index);
return aSecond;
}
public List<Second> getSeconds()
{
List<Second> newSeconds = Collections.unmodifiableList(seconds);
return newSeconds;
}
public int numberOfSeconds()
{
int number = seconds.size();
return number;
}
public boolean hasSeconds()
{
boolean has = seconds.size() > 0;
return has;
}
public int indexOfSecond(Second aSecond)
{
int index = seconds.indexOf(aSecond);
return index;
}
/* Code from template association_IsNumberOfValidMethod */
public boolean isNumberOfSecondsValid()
{
boolean isValid = numberOfSeconds() >= minimumNumberOfSeconds() && numberOfSeconds() <= maximumNumberOfSeconds();
return isValid;
}
/* Code from template association_RequiredNumberOfMethod */
public static int requiredNumberOfSeconds()
{
return 5;
}
/* Code from template association_MinimumNumberOfMethod */
public static int minimumNumberOfSeconds()
{
return 5;
}
/* Code from template association_MaximumNumberOfMethod */
public static int maximumNumberOfSeconds()
{
return 5;
}
/* Code from template association_AddManyToManyMethod */
public boolean addSecond(Second aSecond)
{
boolean wasAdded = false;
if (seconds.contains(aSecond)) { return false; }
if (numberOfSeconds() >= maximumNumberOfSeconds())
{
return wasAdded;
}
seconds.add(aSecond);
if (aSecond.indexOfFirst(this) != -1)
{
wasAdded = true;
}
else
{
wasAdded = aSecond.addFirst(this);
if (!wasAdded)
{
seconds.remove(aSecond);
}
}
return wasAdded;
}
/* Code from template association_AddMNToMany */
public boolean removeSecond(Second aSecond)
{
boolean wasRemoved = false;
if (!seconds.contains(aSecond))
{
return wasRemoved;
}
if (numberOfSeconds() <= minimumNumberOfSeconds())
{
return wasRemoved;
}
int oldIndex = seconds.indexOf(aSecond);
seconds.remove(oldIndex);
if (aSecond.indexOfFirst(this) == -1)
{
wasRemoved = true;
}
else
{
wasRemoved = aSecond.removeFirst(this);
if (!wasRemoved)
{
seconds.add(oldIndex,aSecond);
}
}
return wasRemoved;
}
/* Code from template association_SetMNToMany */
public boolean setSeconds(Second... newSeconds)
{
boolean wasSet = false;
ArrayList<Second> verifiedSeconds = new ArrayList<Second>();
for (Second aSecond : newSeconds)
{
if (verifiedSeconds.contains(aSecond))
{
continue;
}
verifiedSeconds.add(aSecond);
}
if (verifiedSeconds.size() != newSeconds.length || verifiedSeconds.size() < minimumNumberOfSeconds() || verifiedSeconds.size() > maximumNumberOfSeconds())
{
return wasSet;
}
ArrayList<Second> oldSeconds = new ArrayList<Second>(seconds);
seconds.clear();
for (Second aNewSecond : verifiedSeconds)
{
seconds.add(aNewSecond);
if (oldSeconds.contains(aNewSecond))
{
oldSeconds.remove(aNewSecond);
}
else
{
aNewSecond.addFirst(this);
}
}
for (Second anOldSecond : oldSeconds)
{
anOldSecond.removeFirst(this);
}
wasSet = true;
return wasSet;
}
public void delete()
{
ArrayList<Second> copyOfSeconds = new ArrayList<Second>(seconds);
seconds.clear();
for(Second aSecond : copyOfSeconds)
{
aSecond.removeFirst(this);
}
}
@Override
public boolean setSecond(Second aSecond){
return false;
}
}
/*PLEASE DO NOT EDIT THIS CODE*/
/*This code was generated using the UMPLE 1.35.0.7523.c616a4dce modeling language!*/
import java.util.*;
// line 1 "DuplicateInterfaceAssociationMethodsTest6.ump"
public class First implements I
{
//------------------------
// MEMBER VARIABLES
//------------------------
//First Associations
private List<Second> seconds;
//------------------------
// CONSTRUCTOR
//------------------------
public First()
{
seconds = new ArrayList<Second>();
}
//------------------------
// INTERFACE
//------------------------
/* Code from template association_GetMany */
public Second getSecond(int index)
{
Second aSecond = seconds.get(index);
return aSecond;
}
public List<Second> getSeconds()
{
List<Second> newSeconds = Collections.unmodifiableList(seconds);
return newSeconds;
}
public int numberOfSeconds()
{
int number = seconds.size();
return number;
}
public boolean hasSeconds()
{
boolean has = seconds.size() > 0;
return has;
}
public int indexOfSecond(Second aSecond)
{
int index = seconds.indexOf(aSecond);
return index;
}
/* Code from template association_MinimumNumberOfMethod */
public static int minimumNumberOfSeconds()
{
return 0;
}
/* Code from template association_MaximumNumberOfMethod */
public static int maximumNumberOfSeconds()
{
return 5;
}
/* Code from template association_AddManyToManyMethod */
public boolean addSecond(Second aSecond)
{
boolean wasAdded = false;
if (seconds.contains(aSecond)) { return false; }
if (numberOfSeconds() >= maximumNumberOfSeconds())
{
return wasAdded;
}
seconds.add(aSecond);
if (aSecond.indexOfFirst(this) != -1)
{
wasAdded = true;
}
else
{
wasAdded = aSecond.addFirst(this);
if (!wasAdded)
{
seconds.remove(aSecond);
}
}
return wasAdded;
}
/* Code from template association_RemoveMany */
public boolean removeSecond(Second aSecond)
{
boolean wasRemoved = false;
if (!seconds.contains(aSecond))
{
return wasRemoved;
}
int oldIndex = seconds.indexOf(aSecond);
seconds.remove(oldIndex);
if (aSecond.indexOfFirst(this) == -1)
{
wasRemoved = true;
}
else
{
wasRemoved = aSecond.removeFirst(this);
if (!wasRemoved)
{
seconds.add(oldIndex,aSecond);
}
}
return wasRemoved;
}
/* Code from template association_SetOptionalNToMany */
public boolean setSeconds(Second... newSeconds)
{
boolean wasSet = false;
ArrayList<Second> verifiedSeconds = new ArrayList<Second>();
for (Second aSecond : newSeconds)
{
if (verifiedSeconds.contains(aSecond))
{
continue;
}
verifiedSeconds.add(aSecond);
}
if (verifiedSeconds.size() != newSeconds.length || verifiedSeconds.size() > maximumNumberOfSeconds())
{
return wasSet;
}
ArrayList<Second> oldSeconds = new ArrayList<Second>(seconds);
seconds.clear();
for (Second aNewSecond : verifiedSeconds)
{
seconds.add(aNewSecond);
if (oldSeconds.contains(aNewSecond))
{
oldSeconds.remove(aNewSecond);
}
else
{
aNewSecond.addFirst(this);
}
}
for (Second anOldSecond : oldSeconds)
{
anOldSecond.removeFirst(this);
}
wasSet = true;
return wasSet;
}
/* Code from template association_AddIndexControlFunctions */
public boolean addSecondAt(Second aSecond, int index)
{
boolean wasAdded = false;
if(addSecond(aSecond))
{
if(index < 0 ) { index = 0; }
if(index > numberOfSeconds()) { index = numberOfSeconds() - 1; }
seconds.remove(aSecond);
seconds.add(index, aSecond);
wasAdded = true;
}
return wasAdded;
}
public boolean addOrMoveSecondAt(Second aSecond, int index)
{
boolean wasAdded = false;
if(seconds.contains(aSecond))
{
if(index < 0 ) { index = 0; }
if(index > numberOfSeconds()) { index = numberOfSeconds() - 1; }
seconds.remove(aSecond);
seconds.add(index, aSecond);
wasAdded = true;
}
else
{
wasAdded = addSecondAt(aSecond, index);
}
return wasAdded;
}
public void delete()
{
ArrayList<Second> copyOfSeconds = new ArrayList<Second>(seconds);
seconds.clear();
for(Second aSecond : copyOfSeconds)
{
aSecond.removeFirst(this);
}
}
@Override
public boolean setSecond(Second aSecond){
return false;
}
@Override
public boolean isNumberOfSecondsValid(){
return false;
}
}
/*PLEASE DO NOT EDIT THIS CODE*/
/*This code was generated using the UMPLE 1.35.0.7523.c616a4dce modeling language!*/
import java.util.*;
// line 1 "DuplicateInterfaceAssociationMethodsTest7.ump"
public class First implements I
{
//------------------------
// MEMBER VARIABLES
//------------------------
//First Associations
private List<Second> seconds;
//------------------------
// CONSTRUCTOR
//------------------------
public First()
{
seconds = new ArrayList<Second>();
}
//------------------------
// INTERFACE
//------------------------
/* Code from template association_GetMany */
public Second getSecond(int index)
{
Second aSecond = seconds.get(index);
return aSecond;
}
public List<Second> getSeconds()
{
List<Second> newSeconds = Collections.unmodifiableList(seconds);
return newSeconds;
}
public int numberOfSeconds()
{
int number = seconds.size();
return number;
}
public boolean hasSeconds()
{
boolean has = seconds.size() > 0;
return has;
}
public int indexOfSecond(Second aSecond)
{
int index = seconds.indexOf(aSecond);
return index;
}
/* Code from template association_MinimumNumberOfMethod */
public static int minimumNumberOfSeconds()
{
return 0;
}
/* Code from template association_AddManyToManyMethod */
public boolean addSecond(Second aSecond)
{
boolean wasAdded = false;
if (seconds.contains(aSecond)) { return false; }
seconds.add(aSecond);
if (aSecond.indexOfFirst(this) != -1)
{
wasAdded = true;
}
else
{
wasAdded = aSecond.addFirst(this);
if (!wasAdded)
{
seconds.remove(aSecond);
}
}
return wasAdded;
}
/* Code from template association_RemoveMany */
public boolean removeSecond(Second aSecond)
{
boolean wasRemoved = false;
if (!seconds.contains(aSecond))
{
return wasRemoved;
}
int oldIndex = seconds.indexOf(aSecond);
seconds.remove(oldIndex);
if (aSecond.indexOfFirst(this) == -1)
{
wasRemoved = true;
}
else
{
wasRemoved = aSecond.removeFirst(this);
if (!wasRemoved)
{
seconds.add(oldIndex,aSecond);
}
}
return wasRemoved;
}
/* Code from template association_AddIndexControlFunctions */
public boolean addSecondAt(Second aSecond, int index)
{
boolean wasAdded = false;
if(addSecond(aSecond))
{
if(index < 0 ) { index = 0; }
if(index > numberOfSeconds()) { index = numberOfSeconds() - 1; }
seconds.remove(aSecond);
seconds.add(index, aSecond);
wasAdded = true;
}
return wasAdded;
}
public boolean addOrMoveSecondAt(Second aSecond, int index)
{
boolean wasAdded = false;
if(seconds.contains(aSecond))
{
if(index < 0 ) { index = 0; }
if(index > numberOfSeconds()) { index = numberOfSeconds() - 1; }
seconds.remove(aSecond);
seconds.add(index, aSecond);
wasAdded = true;
}
else
{
wasAdded = addSecondAt(aSecond, index);
}
return wasAdded;
}
public void delete()
{
ArrayList<Second> copyOfSeconds = new ArrayList<Second>(seconds);
seconds.clear();
for(Second aSecond : copyOfSeconds)
{
aSecond.removeFirst(this);
}
}
@Override
public boolean setSecond(Second aSecond){
return false;
}
@Override
public boolean setSeconds(Second... newSeconds){
return false;
}
@Override
public boolean isNumberOfSecondsValid(){
return false;
}
}
/*PLEASE DO NOT EDIT THIS CODE*/
/*This code was generated using the UMPLE 1.35.0.7523.c616a4dce modeling language!*/
// line 1 "DuplicateInterfaceAssociationMethodsTest8.ump"
public class First implements I
{
//------------------------
// MEMBER VARIABLES
//------------------------
//First Associations
private Second second;
//------------------------
// CONSTRUCTOR
//------------------------
public First(Second aSecond)
{
if (aSecond == null || aSecond.getFirst() != null)
{
throw new RuntimeException("Unable to create First due to aSecond. See https://manual.umple.org?RE002ViolationofAssociationMultiplicity.html");
}
second = aSecond;
}
public First()
{
second = new Second(this);
}
//------------------------
// INTERFACE
//------------------------
/* Code from template association_GetOne */
public Second getSecond()
{
return second;
}
public void delete()
{
Second existingSecond = second;
second = null;
if (existingSecond != null)
{
existingSecond.delete();
}
}
@Override
public boolean addSecond(Second aSecond){
return false;
}
@Override
public List<Second> getSeconds(){
return null;
}
@Override
public boolean setSecond(Second aSecond){
return false;
}
@Override
public boolean setSeconds(Second... newSeconds){
return false;
}
@Override
public int numberOfSeconds(){
return 0;
}
@Override
public boolean hasSeconds(){
return false;
}
@Override
public int indexOfSecond(Second second){
return 0;
}
@Override
public boolean isNumberOfSecondsValid(){
return false;
}
@Override
public boolean removeSecond(Second second){
return false;
}
}
/*PLEASE DO NOT EDIT THIS CODE*/
/*This code was generated using the UMPLE 1.35.0.7523.c616a4dce modeling language!*/
import java.util.*;
// line 1 "DuplicateInterfaceAssociationMethodsTest9.ump"
public class First implements I
{
//------------------------
// MEMBER VARIABLES
//------------------------
//First Associations
private List<Second> seconds;
//------------------------
// CONSTRUCTOR
//------------------------
public First()
{
seconds = new ArrayList<Second>();
}
//------------------------
// INTERFACE
//------------------------
/* Code from template association_GetMany */
public Second getSecond(int index)
{
Second aSecond = seconds.get(index);
return aSecond;
}
public List<Second> getSeconds()
{
List<Second> newSeconds = Collections.unmodifiableList(seconds);
return newSeconds;
}
public int numberOfSeconds()
{
int number = seconds.size();
return number;
}
public boolean hasSeconds()
{
boolean has = seconds.size() > 0;
return has;
}
public int indexOfSecond(Second aSecond)
{
int index = seconds.indexOf(aSecond);
return index;
}
/* Code from template association_IsNumberOfValidMethod */
public boolean isNumberOfSecondsValid()
{
boolean isValid = numberOfSeconds() >= minimumNumberOfSeconds() && numberOfSeconds() <= maximumNumberOfSeconds();
return isValid;
}
/* Code from template association_RequiredNumberOfMethod */
public static int requiredNumberOfSeconds()
{
return 5;
}
/* Code from template association_MinimumNumberOfMethod */
public static int minimumNumberOfSeconds()
{
return 5;
}
/* Code from template association_MaximumNumberOfMethod */
public static int maximumNumberOfSeconds()
{
return 5;
}
/* Code from template association_AddManyToManyMethod */
public boolean addSecond(Second aSecond)
{
boolean wasAdded = false;
if (seconds.contains(aSecond)) { return false; }
if (numberOfSeconds() >= maximumNumberOfSeconds())
{
return wasAdded;
}
seconds.add(aSecond);
if (aSecond.indexOfFirst(this) != -1)
{
wasAdded = true;
}
else
{
wasAdded = aSecond.addFirst(this);
if (!wasAdded)
{
seconds.remove(aSecond);
}
}
return wasAdded;
}
/* Code from template association_AddMNToMany */
public boolean removeSecond(Second aSecond)
{
boolean wasRemoved = false;
if (!seconds.contains(aSecond))
{
return wasRemoved;
}
if (numberOfSeconds() <= minimumNumberOfSeconds())
{
return wasRemoved;
}
int oldIndex = seconds.indexOf(aSecond);
seconds.remove(oldIndex);
if (aSecond.indexOfFirst(this) == -1)
{
wasRemoved = true;
}
else
{
wasRemoved = aSecond.removeFirst(this);
if (!wasRemoved)
{
seconds.add(oldIndex,aSecond);
}
}
return wasRemoved;
}
/* Code from template association_SetMNToMany */
public boolean setSeconds(Second... newSeconds)
{
boolean wasSet = false;
ArrayList<Second> verifiedSeconds = new ArrayList<Second>();
for (Second aSecond : newSeconds)
{
if (verifiedSeconds.contains(aSecond))
{
continue;
}
verifiedSeconds.add(aSecond);
}
if (verifiedSeconds.size() != newSeconds.length || verifiedSeconds.size() < minimumNumberOfSeconds() || verifiedSeconds.size() > maximumNumberOfSeconds())
{
return wasSet;
}
ArrayList<Second> oldSeconds = new ArrayList<Second>(seconds);
seconds.clear();
for (Second aNewSecond : verifiedSeconds)
{
seconds.add(aNewSecond);
if (oldSeconds.contains(aNewSecond))
{
oldSeconds.remove(aNewSecond);
}
else
{
aNewSecond.addFirst(this);
}
}
for (Second anOldSecond : oldSeconds)
{
anOldSecond.removeFirst(this);
}
wasSet = true;
return wasSet;
}
public void delete()
{
ArrayList<Second> copyOfSeconds = new ArrayList<Second>(seconds);
seconds.clear();
for(Second aSecond : copyOfSeconds)
{
if (aSecond.numberOfFirsts() <= Second.minimumNumberOfFirsts())
{
aSecond.delete();
}
else
{
aSecond.removeFirst(this);
}
}
}
@Override
public boolean setSecond(Second aSecond){
return false;
}
}
/*PLEASE DO NOT EDIT THIS CODE*/
/*This code was generated using the UMPLE 1.35.0.7523.c616a4dce modeling language!*/
import java.util.*;
// line 1 "DuplicateInterfaceAssociationMethodsTest10.ump"
public class First implements I
{
//------------------------
// MEMBER VARIABLES
//------------------------
//First Associations
private List<Second> seconds;
//------------------------
// CONSTRUCTOR
//------------------------
public First()
{
seconds = new ArrayList<Second>();
}
//------------------------
// INTERFACE
//------------------------
/* Code from template association_GetMany */
public Second getSecond(int index)
{
Second aSecond = seconds.get(index);
return aSecond;
}
public List<Second> getSeconds()
{
List<Second> newSeconds = Collections.unmodifiableList(seconds);
return newSeconds;
}
public int numberOfSeconds()
{
int number = seconds.size();
return number;
}
public boolean hasSeconds()
{
boolean has = seconds.size() > 0;
return has;
}
public int indexOfSecond(Second aSecond)
{
int index = seconds.indexOf(aSecond);
return index;
}
/* Code from template association_IsNumberOfValidMethod */
public boolean isNumberOfSecondsValid()
{
boolean isValid = numberOfSeconds() >= minimumNumberOfSeconds() && numberOfSeconds() <= maximumNumberOfSeconds();
return isValid;
}
/* Code from template association_MinimumNumberOfMethod */
public static int minimumNumberOfSeconds()
{
return 2;
}
/* Code from template association_MaximumNumberOfMethod */
public static int maximumNumberOfSeconds()
{
return 4;
}
/* Code from template association_AddManyToManyMethod */
public boolean addSecond(Second aSecond)
{
boolean wasAdded = false;
if (seconds.contains(aSecond)) { return false; }
if (numberOfSeconds() >= maximumNumberOfSeconds())
{
return wasAdded;
}
seconds.add(aSecond);
if (aSecond.indexOfFirst(this) != -1)
{
wasAdded = true;
}
else
{
wasAdded = aSecond.addFirst(this);
if (!wasAdded)
{
seconds.remove(aSecond);
}
}
return wasAdded;
}
/* Code from template association_AddMNToMany */
public boolean removeSecond(Second aSecond)
{
boolean wasRemoved = false;
if (!seconds.contains(aSecond))
{
return wasRemoved;
}
if (numberOfSeconds() <= minimumNumberOfSeconds())
{
return wasRemoved;
}
int oldIndex = seconds.indexOf(aSecond);
seconds.remove(oldIndex);
if (aSecond.indexOfFirst(this) == -1)
{
wasRemoved = true;
}
else
{
wasRemoved = aSecond.removeFirst(this);
if (!wasRemoved)
{
seconds.add(oldIndex,aSecond);
}
}
return wasRemoved;
}
/* Code from template association_SetMNToMany */
public boolean setSeconds(Second... newSeconds)
{
boolean wasSet = false;
ArrayList<Second> verifiedSeconds = new ArrayList<Second>();
for (Second aSecond : newSeconds)
{
if (verifiedSeconds.contains(aSecond))
{
continue;
}
verifiedSeconds.add(aSecond);
}
if (verifiedSeconds.size() != newSeconds.length || verifiedSeconds.size() < minimumNumberOfSeconds() || verifiedSeconds.size() > maximumNumberOfSeconds())
{
return wasSet;
}
ArrayList<Second> oldSeconds = new ArrayList<Second>(seconds);
seconds.clear();
for (Second aNewSecond : verifiedSeconds)
{
seconds.add(aNewSecond);
if (oldSeconds.contains(aNewSecond))
{
oldSeconds.remove(aNewSecond);
}
else
{
aNewSecond.addFirst(this);
}
}
for (Second anOldSecond : oldSeconds)
{
anOldSecond.removeFirst(this);
}
wasSet = true;
return wasSet;
}
/* Code from template association_AddIndexControlFunctions */
public boolean addSecondAt(Second aSecond, int index)
{
boolean wasAdded = false;
if(addSecond(aSecond))
{
if(index < 0 ) { index = 0; }
if(index > numberOfSeconds()) { index = numberOfSeconds() - 1; }
seconds.remove(aSecond);
seconds.add(index, aSecond);
wasAdded = true;
}
return wasAdded;
}
public boolean addOrMoveSecondAt(Second aSecond, int index)
{
boolean wasAdded = false;
if(seconds.contains(aSecond))
{
if(index < 0 ) { index = 0; }
if(index > numberOfSeconds()) { index = numberOfSeconds() - 1; }
seconds.remove(aSecond);
seconds.add(index, aSecond);
wasAdded = true;
}
else
{
wasAdded = addSecondAt(aSecond, index);
}
return wasAdded;
}
public void delete()
{
ArrayList<Second> copyOfSeconds = new ArrayList<Second>(seconds);
seconds.clear();
for(Second aSecond : copyOfSeconds)
{
if (aSecond.numberOfFirsts() <= Second.minimumNumberOfFirsts())
{
aSecond.delete();
}
else
{
aSecond.removeFirst(this);
}
}
}
@Override
public boolean setSecond(Second aSecond){
return false;
}
}
/*PLEASE DO NOT EDIT THIS CODE*/
/*This code was generated using the UMPLE 1.35.0.7523.c616a4dce modeling language!*/
import java.util.*;
// line 1 "DuplicateInterfaceAssociationMethodsTest11.ump"
public class First implements I
{
//------------------------
// MEMBER VARIABLES
//------------------------
//First Associations
private List<Second> seconds;
//------------------------
// CONSTRUCTOR
//------------------------
public First()
{
seconds = new ArrayList<Second>();
}
//------------------------
// INTERFACE
//------------------------
/* Code from template association_GetMany */
public Second getSecond(int index)
{
Second aSecond = seconds.get(index);
return aSecond;
}
public List<Second> getSeconds()
{
List<Second> newSeconds = Collections.unmodifiableList(seconds);
return newSeconds;
}
public int numberOfSeconds()
{
int number = seconds.size();
return number;
}
public boolean hasSeconds()
{
boolean has = seconds.size() > 0;
return has;
}
public int indexOfSecond(Second aSecond)
{
int index = seconds.indexOf(aSecond);
return index;
}
/* Code from template association_IsNumberOfValidMethod */
public boolean isNumberOfSecondsValid()
{
boolean isValid = numberOfSeconds() >= minimumNumberOfSeconds() && numberOfSeconds() <= maximumNumberOfSeconds();
return isValid;
}
/* Code from template association_MinimumNumberOfMethod */
public static int minimumNumberOfSeconds()
{
return 1;
}
/* Code from template association_MaximumNumberOfMethod */
public static int maximumNumberOfSeconds()
{
return 4;
}
/* Code from template association_AddMNToOnlyOne */
public Second addSecond()
{
if (numberOfSeconds() >= maximumNumberOfSeconds())
{
return null;
}
else
{
return new Second(this);
}
}
public boolean addSecond(Second aSecond)
{
boolean wasAdded = false;
if (seconds.contains(aSecond)) { return false; }
if (numberOfSeconds() >= maximumNumberOfSeconds())
{
return wasAdded;
}
First existingFirst = aSecond.getFirst();
boolean isNewFirst = existingFirst != null && !this.equals(existingFirst);
if (isNewFirst && existingFirst.numberOfSeconds() <= minimumNumberOfSeconds())
{
return wasAdded;
}
if (isNewFirst)
{
aSecond.setFirst(this);
}
else
{
seconds.add(aSecond);
}
wasAdded = true;
return wasAdded;
}
public boolean removeSecond(Second aSecond)
{
boolean wasRemoved = false;
//Unable to remove aSecond, as it must always have a first
if (this.equals(aSecond.getFirst()))
{
return wasRemoved;
}
//first already at minimum (1)
if (numberOfSeconds() <= minimumNumberOfSeconds())
{
return wasRemoved;
}
seconds.remove(aSecond);
wasRemoved = true;
return wasRemoved;
}
/* Code from template association_AddIndexControlFunctions */
public boolean addSecondAt(Second aSecond, int index)
{
boolean wasAdded = false;
if(addSecond(aSecond))
{
if(index < 0 ) { index = 0; }
if(index > numberOfSeconds()) { index = numberOfSeconds() - 1; }
seconds.remove(aSecond);
seconds.add(index, aSecond);
wasAdded = true;
}
return wasAdded;
}
public boolean addOrMoveSecondAt(Second aSecond, int index)
{
boolean wasAdded = false;
if(seconds.contains(aSecond))
{
if(index < 0 ) { index = 0; }
if(index > numberOfSeconds()) { index = numberOfSeconds() - 1; }
seconds.remove(aSecond);
seconds.add(index, aSecond);
wasAdded = true;
}
else
{
wasAdded = addSecondAt(aSecond, index);
}
return wasAdded;
}
public void delete()
{
for(int i=seconds.size(); i > 0; i--)
{
Second aSecond = seconds.get(i - 1);
aSecond.delete();
}
}
@Override
public boolean setSecond(Second aSecond){
return false;
}
@Override
public boolean setSeconds(Second... newSeconds){
return false;
}
}