- Collections.sort(commonEdgeTsPool);
- boolean discontinue = true;
- int index = 0;
- while (discontinue && (commonEdgeTsPool.size() - index >= nbSlot)) {
- discontinue = false;
- Integer val = commonEdgeTsPool.get(index).toJava();
- for (int i = 0; i < nbSlot; i++) {
- if (commonEdgeTsPool.get(index + i).equals(Uint16.valueOf(val + i))) {
- tribSlotList.add(commonEdgeTsPool.get(index + i));
- } else {
- discontinue = true;
- tribSlotList.clear();
- index += i;
- break;
+ Collections.sort(commonEdgeTsPoolList);
+ List<Uint16> commonGoodStartEdgeTsPoolList = new ArrayList<>();
+ for (Uint16 startEdgeTsPool : commonEdgeTsPoolList) {
+ if (Integer.valueOf(1).equals(startEdgeTsPool.toJava() % nbSlot)
+ || nbSlot == 1) {
+ commonGoodStartEdgeTsPoolList.add(startEdgeTsPool);
+ }
+ }
+ Collections.sort(commonGoodStartEdgeTsPoolList);
+ boolean goodTsList = false;
+ for (Uint16 goodStartTsPool : commonGoodStartEdgeTsPoolList) {
+ int goodStartIndex = commonEdgeTsPoolList.indexOf(Uint16.valueOf(goodStartTsPool.intValue()));
+ if (!goodTsList && commonEdgeTsPoolList.size() - goodStartIndex >= nbSlot) {
+ for (int i = 0; i < nbSlot; i++) {
+ if (!commonEdgeTsPoolList.get(goodStartIndex + i)
+ .equals(Uint16.valueOf(goodStartTsPool.toJava() + i))) {
+ goodTsList = false;
+ tribSlotList.clear();
+ break;
+ }
+ tribSlotList.add(commonEdgeTsPoolList.get(goodStartIndex + i));
+ goodTsList = true;