20 package net.sf.gridarta.model.baseobject;
22 import java.io.Serializable;
23 import java.util.Collection;
24 import java.util.HashMap;
25 import java.util.HashSet;
28 import org.jetbrains.annotations.NotNull;
29 import org.jetbrains.annotations.Nullable;
49 private final StringBuilder
objectText =
new StringBuilder();
104 final String attr2 = attributeName.trim() +
' ';
105 String result =
null;
107 if (line.startsWith(attr2)) {
108 result = line.substring(attr2.length());
140 if (line.isEmpty()) {
143 baseObject.beginGameObjectChange();
146 if (!line.endsWith(
"\n")) {
150 baseObject.endGameObjectChange();
163 final String oldObjectText = this.objectText.toString();
164 if (oldObjectText.length() ==
objectText.length()) {
167 if (oldSortedObjectText.equals(newSortedObjectText)) {
172 baseObject.beginGameObjectChange();
174 this.objectText.setLength(0);
177 this.objectText.append(
'\n');
180 baseObject.endGameObjectChange();
192 public boolean equals(@Nullable
final Object obj) {
196 if (obj ==
null || obj.getClass() != getClass()) {
210 final String attributeNameWithSpace = attributeName.trim() +
" ";
212 final StringBuilder sb =
new StringBuilder();
214 if (!line.isEmpty() && !line.startsWith(attributeNameWithSpace)) {
215 sb.append(line).append(
'\n');
231 if (value.isEmpty()) {
235 final String attributeNameWithSpace = attributeName.trim() +
" ";
236 boolean exists =
false;
237 final StringBuilder result =
new StringBuilder();
239 if (line.isEmpty()) {
241 }
else if (!line.startsWith(attributeNameWithSpace)) {
242 result.append(line).append(
'\n');
245 if (!sameAsInArchetype) {
246 result.append(attributeNameWithSpace).append(value).append(
'\n');
250 if (!exists && !sameAsInArchetype) {
251 result.append(attributeNameWithSpace).append(value).append(
'\n');
262 final Collection<String> keys =
new HashSet<>();
264 final int index = line.indexOf(
' ');
266 keys.add(line.substring(0, index));