/**
   * This test currently fails in the graph publisher implementation because we don't support
   * merging events in GraphDependenciesListEventPublisher.
   */
  public void testMergingListEvents() {
    CompositeList<String> compositeList = new CompositeList<String>();
    ListConsistencyListener<String> listConsistencyListener =
        ListConsistencyListener.install(compositeList);
    listConsistencyListener.setPreviousElementTracked(false);
    EventList<String> source = compositeList.createMemberList();
    source.add("C");
    source.add("A");
    source.add("B");

    SortedList<String> forwardSource = SortedList.create(source);
    SortedList<String> reverseSource =
        new SortedList<String>(source, GlazedLists.reverseComparator());
    compositeList.addMemberList(forwardSource);
    compositeList.addMemberList(source);
    compositeList.addMemberList(reverseSource);

    assertEquals(compositeList, GlazedListsTests.stringToList("ABCCABCBA"));

    source.add(1, "D");
    assertEquals(compositeList, GlazedListsTests.stringToList("ABCDCDABDCBA"));

    source.removeAll(GlazedListsTests.stringToList("AC"));
    assertEquals(compositeList, GlazedListsTests.stringToList("BDDBDB"));

    source.clear();
    assertEquals(compositeList, GlazedListsTests.stringToList(""));

    source.addAll(GlazedListsTests.stringToList("CADB"));
    assertEquals(compositeList, GlazedListsTests.stringToList("ABCDCADBDCBA"));
  }
예제 #2
0
  static void __serializeJsonObjectFull(
      final CompositeList self, com.dslplatform.json.JsonWriter sw, boolean hasWrittenProperty) {

    sw.writeAscii("\"URI\":");
    com.dslplatform.json.StringConverter.serializeShort(self.URI, sw);

    sw.writeAscii(",\"id\":", 6);
    com.dslplatform.json.UUIDConverter.serialize(self.id, sw);

    if (self.enn.length != 0) {
      sw.writeAscii(",\"enn\":[", 8);
      gen.model.test.En item = self.enn[0];
      sw.writeByte(com.dslplatform.json.JsonWriter.QUOTE);
      sw.writeAscii(item.name());
      sw.writeByte(com.dslplatform.json.JsonWriter.QUOTE);
      for (int i = 1; i < self.enn.length; i++) {
        sw.writeByte(com.dslplatform.json.JsonWriter.COMMA);
        item = self.enn[i];
        sw.writeByte(com.dslplatform.json.JsonWriter.QUOTE);
        sw.writeAscii(item.name());
        sw.writeByte(com.dslplatform.json.JsonWriter.QUOTE);
      }
      sw.writeByte(com.dslplatform.json.JsonWriter.ARRAY_END);
    } else sw.writeAscii(",\"enn\":[]", 9);

    sw.writeAscii(",\"en\":\"", 7);
    sw.writeAscii(self.en.name());
    sw.writeByte(com.dslplatform.json.JsonWriter.QUOTE);

    if (self.tsl.size() != 0) {
      sw.writeAscii(",\"tsl\":[", 8);
      com.dslplatform.json.JavaTimeConverter.serializeNullable(self.tsl.get(0), sw);
      for (int i = 1; i < self.tsl.size(); i++) {
        sw.writeByte(com.dslplatform.json.JsonWriter.COMMA);
        com.dslplatform.json.JavaTimeConverter.serializeNullable(self.tsl.get(i), sw);
      }
      sw.writeByte(com.dslplatform.json.JsonWriter.ARRAY_END);
    } else sw.writeAscii(",\"tsl\":[]", 9);

    sw.writeAscii(",\"change\":", 10);
    com.dslplatform.json.JavaTimeConverter.serialize(self.change, sw);

    if (self.entities.size() != 0) {
      sw.writeAscii(",\"entities\":[", 13);
      gen.model.test.Entity item = self.entities.get(0);
      sw.writeByte(com.dslplatform.json.JsonWriter.OBJECT_START);
      gen.model.test.Entity.__serializeJsonObjectFull(item, sw, false);
      sw.writeByte(com.dslplatform.json.JsonWriter.OBJECT_END);
      for (int i = 1; i < self.entities.size(); i++) {
        sw.writeByte(com.dslplatform.json.JsonWriter.COMMA);
        item = self.entities.get(i);
        sw.writeByte(com.dslplatform.json.JsonWriter.OBJECT_START);
        gen.model.test.Entity.__serializeJsonObjectFull(item, sw, false);
        sw.writeByte(com.dslplatform.json.JsonWriter.OBJECT_END);
      }
      sw.writeByte(com.dslplatform.json.JsonWriter.ARRAY_END);
    } else sw.writeAscii(",\"entities\":[]", 14);

    sw.writeAscii(",\"simple\":{", 11);

    gen.model.test.Simple.__serializeJsonObjectFull(self.simple, sw, false);
    sw.writeByte(com.dslplatform.json.JsonWriter.OBJECT_END);

    sw.writeAscii(",\"number\":", 10);
    com.dslplatform.json.NumberConverter.serialize(self.number, sw);

    sw.writeAscii(",\"entitiesCount\":", 17);
    com.dslplatform.json.NumberConverter.serialize(self.entitiesCount, sw);

    if (self.hasEntities) {
      sw.writeAscii(",\"hasEntities\":true");
    } else {
      sw.writeAscii(",\"hasEntities\":false");
    }

    if (self.entityHasMoney.length != 0) {
      sw.writeAscii(",\"entityHasMoney\":[", 19);
      com.dslplatform.json.BoolConverter.serialize(self.entityHasMoney[0], sw);
      for (int i = 1; i < self.entityHasMoney.length; i++) {
        sw.writeByte(com.dslplatform.json.JsonWriter.COMMA);
        com.dslplatform.json.BoolConverter.serialize(self.entityHasMoney[i], sw);
      }
      sw.writeByte(com.dslplatform.json.JsonWriter.ARRAY_END);
    } else sw.writeAscii(",\"entityHasMoney\":[]", 20);

    if (self.indexes != null && self.indexes.length != 0) {
      sw.writeAscii(",\"indexes\":[", 12);
      com.dslplatform.json.NumberConverter.serialize(self.indexes[0], sw);
      for (int i = 1; i < self.indexes.length; i++) {
        sw.writeByte(com.dslplatform.json.JsonWriter.COMMA);
        com.dslplatform.json.NumberConverter.serialize(self.indexes[i], sw);
      }
      sw.writeByte(com.dslplatform.json.JsonWriter.ARRAY_END);
    } else if (self.indexes != null) sw.writeAscii(",\"indexes\":[]", 13);
    else sw.writeAscii(",\"indexes\":null", 15);

    sw.writeAscii(",\"id2\":", 7);
    com.dslplatform.json.UUIDConverter.serialize(self.getId2(), sw);
  }