List<MethodContract> (boolean endLimited) { List<MethodContract> contracts = new ArrayList<>(3); contracts.add(specialFieldRangeContract(0, RelationType.LE, SpecialField.STRING_LENGTH)); if (endLimited) { contracts.add(specialFieldRangeContract(1, RelationType.LE, SpecialField.STRING_LENGTH)); contracts.add(singleConditionContract(ContractValue.argument(0), RelationType.LE.getNegated(), ContractValue.argument(1), fail())); } return contracts; }