diff --git a/src/main/java/com/lmco/spectrum/systemnavigation3d/geia/XMLGeiaDataSource.java b/src/main/java/com/lmco/spectrum/systemnavigation3d/geia/XMLGeiaDataSource.java index 1fffefa..7e5d722 100644 --- a/src/main/java/com/lmco/spectrum/systemnavigation3d/geia/XMLGeiaDataSource.java +++ b/src/main/java/com/lmco/spectrum/systemnavigation3d/geia/XMLGeiaDataSource.java @@ -34,6 +34,11 @@ public XMLGeiaDataSource(InputStream xmlStream) { } + @SuppressWarnings("unchecked") + private List getEntities(Class clazz) { + return (List) geiaEntityMap.get(clazz); + } + private void processGeiaStd() { for(GeiaEntity entity : stdModel.getGeiaFullFile()) { @@ -43,7 +48,7 @@ private void processGeiaStd() { geiaEntityMap.get(entity.getClass()).add(entity); } - geiaEntityMap.get(XA.class).forEach(xa -> xaList.add((XA) xa)); + xaList.addAll(getEntities(XA.class)); for(XA xa : xaList) { pairXAWithChildren(xa); @@ -52,9 +57,8 @@ private void processGeiaStd() { } private void pairXAWithChildren(XA src) { - geiaEntityMap.get(XB.class) + getEntities(XB.class) .stream() - .map(entity -> (XB)entity) .filter(xb -> xb.getLcnIndentureCode().charAt(0) == 'A' && src.getEndItemAcronymCode().equals(xb.getEndItemAcronymCode())) .forEach(xb -> { pairXBWithChildren(xb); @@ -63,17 +67,15 @@ private void pairXAWithChildren(XA src) { } private void pairXBWithChildren(XB src) { - geiaEntityMap.get(XB.class) + getEntities(XB.class) .stream() - .map(entity -> (XB)entity) .filter(xb -> xb.getLcn().startsWith(src.getLcn()) && xb.getLcnIndentureCode().charAt(0)-1 == src.getLcnIndentureCode().charAt(0)) .forEach(xb -> { pairXBWithChildren(xb); src.getXbChildren().add(xb); }); - geiaEntityMap.get(CA.class) + getEntities(CA.class) .stream() - .map(entity -> (CA)entity) .filter(ca -> src.getLcn().equals(ca.getLcn())) .forEach(ca -> src.getCaChildren().add(ca)); // TODO process CA children }