protected BandData findBandByPath(String path) { if (rootBand.getName().equals(path)) return rootBand; String[] pathParts = path.split("\\."); BandData currentBand = rootBand; for (String pathPart : pathParts) { if (currentBand == null) return null; currentBand = currentBand.findBandRecursively(pathPart); } return currentBand; }
protected BandData findBandByPath(String path) { if (rootBand.getName().equals(path)) return rootBand; String[] pathParts = path.split("\\."); BandData currentBand = rootBand; for (String pathPart : pathParts) { if (currentBand == null) return null; currentBand = currentBand.findBandRecursively(pathPart); } return currentBand; }
protected BandPathAndParameterName separateBandNameAndParameterName(String alias) { List<String> bandPathList = new ArrayList<>(); String[] pathParts = alias.split("\\."); BandData currentBand = rootBand; for (String pathPart : pathParts) { currentBand = currentBand.findBandRecursively(pathPart); if (currentBand != null) { bandPathList.add(pathPart); } else { break; } } if (bandPathList.isEmpty()) { return new BandPathAndParameterName("", alias); } else { String bandPathPart = StringUtils.join(bandPathList, "."); String paramNamePart = alias.replaceFirst(bandPathPart + ".", ""); return new BandPathAndParameterName(bandPathPart, paramNamePart); } }
protected BandPathAndParameterName separateBandNameAndParameterName(String alias) { List<String> bandPathList = new ArrayList<String>(); String[] pathParts = alias.split("\\."); BandData currentBand = rootBand; for (String pathPart : pathParts) { currentBand = currentBand.findBandRecursively(pathPart); if (currentBand != null) { bandPathList.add(pathPart); } else { break; } } if (bandPathList.isEmpty()) { return new BandPathAndParameterName("", alias); } else { String bandPathPart = StringUtils.join(bandPathList, "."); String paramNamePart = alias.replaceFirst(bandPathPart + ".", ""); return new BandPathAndParameterName(bandPathPart, paramNamePart); } }
public List<BandData> findBandsRecursively(String name) { BandData firstBand = findBandRecursively(name); if (firstBand == null) { return Collections.emptyList(); } List<BandData> allBands = firstBand.getParentBand() != null ? firstBand.getParentBand().getChildrenByName(name) : Collections.singletonList(firstBand); return allBands; }
public List<BandData> findBandsRecursively(String name) { BandData firstBand = findBandRecursively(name); if (firstBand == null) { return Collections.emptyList(); } List<BandData> allBands = firstBand.getParentBand() != null ? firstBand.getParentBand().getChildrenByName(name) : Collections.singletonList(firstBand); return allBands; }
public BandFinder find() { bandName = tableName; band = rootBand.findBandRecursively(bandName); if (band == null) { XText xText = tableManager.findFirstEntryInRow(BAND_NAME_DECLARATION_PATTERN, 0); if (xText != null) { Matcher matcher = BAND_NAME_DECLARATION_PATTERN.matcher(xText.getString()); if (matcher.find()) { bandName = matcher.group(1); band = rootBand.findBandRecursively(bandName); XTextCursor xTextCursor = xText.createTextCursor(); xTextCursor.gotoStart(false); xTextCursor.goRight((short) matcher.end(), false); xTextCursor.goLeft((short) matcher.group().length(), true); xText.insertString(xTextCursor, "", true); } } } return this; } }
public BandFinder find() { bandName = tableName; band = rootBand.findBandRecursively(bandName); if (band == null) { XText xText = tableManager.findFirstEntryInRow(BAND_NAME_DECLARATION_PATTERN, 0); if (xText != null) { Matcher matcher = BAND_NAME_DECLARATION_PATTERN.matcher(xText.getString()); if (matcher.find()) { bandName = matcher.group(1); band = rootBand.findBandRecursively(bandName); XTextCursor xTextCursor = xText.createTextCursor(); xTextCursor.gotoStart(false); xTextCursor.goRight((short) matcher.end(), false); xTextCursor.goLeft((short) matcher.group().length(), true); xText.insertString(xTextCursor, "", true); } } } return this; } }
bandWithFileName = rootBand; } else { bandWithFileName = rootBand.findBandRecursively(bandName);
@Test public void testFindBandsRecursively() { BandData root = createData(); BandData foundRoot = root.findBandRecursively(BandData.ROOT_BAND_NAME); assertSame(root, foundRoot); BandData band1 = root.findBandRecursively("Band1"); BandData band2 = root.findBandRecursively("Band2"); BandData band3 = root.findBandRecursively("Band3"); assertNotNull(band1); assertNotNull(band2); assertNotNull(band3); BandData band11 = root.findBandRecursively("Band11"); BandData band12 = root.findBandRecursively("Band12"); BandData band13 = root.findBandRecursively("Band13"); BandData band14 = root.findBandRecursively("Band14"); BandData band34 = root.findBandRecursively("Band34"); assertNotNull(band11); assertNotNull(band12); assertNotNull(band13); assertNotNull(band14); assertEquals("Band1.Band11", band11.getFullName()); assertEquals("Band3.Band34", band34.getFullName()); }
bandWithFileName = rootBand; } else { bandWithFileName = rootBand.findBandRecursively(bandName);