[Minor] check if refP is empty, and stop early

This commit is contained in:
Robert von Burg 2018-10-05 11:45:08 +02:00
parent fc896be5b5
commit d7b4bef70c
1 changed files with 19 additions and 1 deletions

View File

@ -518,7 +518,7 @@ public abstract class AbstractTransaction implements StrolchTransaction {
StrolchRootElement parent = element; StrolchRootElement parent = element;
while (t == null) { while (t == null) {
StringParameter parentP = parent.getParameter(BAG_RELATIONS, parentParamKey); StringParameter parentP = parent.getParameter(BAG_RELATIONS, parentParamKey);
if (parentP == null) if (parentP == null || parentP.isEmpty())
break; break;
switch (parentP.getInterpretation()) { switch (parentP.getInterpretation()) {
@ -664,6 +664,9 @@ public abstract class AbstractTransaction implements StrolchTransaction {
throw new StrolchException(MessageFormat.format(msg, refP.getUom(), refP.getValue(), refP.getLocator())); throw new StrolchException(MessageFormat.format(msg, refP.getUom(), refP.getValue(), refP.getLocator()));
} }
if (refP.isEmpty())
return null;
Order element = getElementFromFilter(Tags.ORDER, Order.locatorFor(refP.getUom(), refP.getValue())); Order element = getElementFromFilter(Tags.ORDER, Order.locatorFor(refP.getUom(), refP.getValue()));
if (element != null) if (element != null)
return element; return element;
@ -691,6 +694,9 @@ public abstract class AbstractTransaction implements StrolchTransaction {
public List<Order> getOrdersBy(StringListParameter refP, boolean assertExists) throws StrolchException { public List<Order> getOrdersBy(StringListParameter refP, boolean assertExists) throws StrolchException {
DBC.PRE.assertNotNull("refP", refP); DBC.PRE.assertNotNull("refP", refP);
ElementMapHelpers.assertIsRefParam(INTERPRETATION_ORDER_REF, refP); ElementMapHelpers.assertIsRefParam(INTERPRETATION_ORDER_REF, refP);
if (refP.isEmpty())
return new ArrayList<>();
List<Order> elements = new ArrayList<>(); List<Order> elements = new ArrayList<>();
for (String id : refP.getValue()) { for (String id : refP.getValue()) {
Order element = getOrderBy(refP.getUom(), id, assertExists); Order element = getOrderBy(refP.getUom(), id, assertExists);
@ -740,6 +746,9 @@ public abstract class AbstractTransaction implements StrolchTransaction {
throw new StrolchException(MessageFormat.format(msg, refP.getUom(), refP.getValue(), refP.getLocator())); throw new StrolchException(MessageFormat.format(msg, refP.getUom(), refP.getValue(), refP.getLocator()));
} }
if (refP.isEmpty())
return null;
Resource element = getElementFromFilter(Tags.RESOURCE, Resource.locatorFor(refP.getUom(), refP.getValue())); Resource element = getElementFromFilter(Tags.RESOURCE, Resource.locatorFor(refP.getUom(), refP.getValue()));
if (element != null) if (element != null)
return element; return element;
@ -767,6 +776,9 @@ public abstract class AbstractTransaction implements StrolchTransaction {
public List<Resource> getResourcesBy(StringListParameter refP, boolean assertExists) throws StrolchException { public List<Resource> getResourcesBy(StringListParameter refP, boolean assertExists) throws StrolchException {
DBC.PRE.assertNotNull("refP", refP); DBC.PRE.assertNotNull("refP", refP);
ElementMapHelpers.assertIsRefParam(INTERPRETATION_RESOURCE_REF, refP); ElementMapHelpers.assertIsRefParam(INTERPRETATION_RESOURCE_REF, refP);
if (refP.isEmpty())
return new ArrayList<>();
List<Resource> elements = new ArrayList<>(); List<Resource> elements = new ArrayList<>();
for (String id : refP.getValue()) { for (String id : refP.getValue()) {
Resource element = getResourceBy(refP.getUom(), id, assertExists); Resource element = getResourceBy(refP.getUom(), id, assertExists);
@ -828,6 +840,9 @@ public abstract class AbstractTransaction implements StrolchTransaction {
throw new StrolchException(MessageFormat.format(msg, refP.getUom(), refP.getValue(), refP.getLocator())); throw new StrolchException(MessageFormat.format(msg, refP.getUom(), refP.getValue(), refP.getLocator()));
} }
if (refP.isEmpty())
return null;
Activity element = getElementFromFilter(Tags.ACTIVITY, Activity.locatorFor(refP.getUom(), refP.getValue())); Activity element = getElementFromFilter(Tags.ACTIVITY, Activity.locatorFor(refP.getUom(), refP.getValue()));
if (element != null) if (element != null)
return element; return element;
@ -855,6 +870,9 @@ public abstract class AbstractTransaction implements StrolchTransaction {
public List<Activity> getActivitiesBy(StringListParameter refP, boolean assertExists) throws StrolchException { public List<Activity> getActivitiesBy(StringListParameter refP, boolean assertExists) throws StrolchException {
DBC.PRE.assertNotNull("refP", refP); DBC.PRE.assertNotNull("refP", refP);
ElementMapHelpers.assertIsRefParam(INTERPRETATION_ACTIVITY_REF, refP); ElementMapHelpers.assertIsRefParam(INTERPRETATION_ACTIVITY_REF, refP);
if (refP.isEmpty())
return new ArrayList<>();
List<Activity> elements = new ArrayList<>(); List<Activity> elements = new ArrayList<>();
for (String id : refP.getValue()) { for (String id : refP.getValue()) {
Activity element = getActivityBy(refP.getUom(), id, assertExists); Activity element = getActivityBy(refP.getUom(), id, assertExists);