@Override public Maybe<LocationSpec<? extends Location>> getLocationSpec(String spec) { return getLocationSpec(spec, MutableMap.of()); } @Override
@Override public Maybe<LocationSpec<? extends Location>> getLocationSpec(LocationDefinition ld) { return getLocationSpec(ld, MutableMap.of()); }
@Override public LocationSpec<? extends Location> newLocationSpecFromString(String spec, Map<?, ?> locationFlags, LocationRegistry registry) { String id = spec; if (spec.toLowerCase().startsWith(ID+":")) { id = spec.substring( (ID+":").length() ); } LocationDefinition ld = registry.getDefinedLocationById(id); ld.getSpec(); return ((BasicLocationRegistry)registry).getLocationSpec(ld, locationFlags).get(); }
@Override public Location getLocationManaged(String spec) { return mgmt.getLocationManager().createLocation(getLocationSpec(spec).get()); }
@Override public final Location getLocationManaged(String spec, Map locationFlags) { return mgmt.getLocationManager().createLocation(getLocationSpec(spec, locationFlags).get()); }
@Override @Deprecated public Maybe<Location> resolve(String spec, Boolean manage, Map locationFlags) { if (manage!=null) { locationFlags = MutableMap.copyOf(locationFlags); locationFlags.put(LocalLocationManager.CREATE_UNMANAGED, !manage); } Maybe<LocationSpec<? extends Location>> lSpec = getLocationSpec(spec, locationFlags); if (lSpec.isAbsent()) return (Maybe)lSpec; return Maybe.of((Location)mgmt.getLocationManager().createLocation(lSpec.get())); }
@Override public Maybe<LocationSpec<? extends Location>> getLocationSpec(LocationDefinition ld, Map locationFlags) { ConfigBag newLocationFlags = ConfigBag.newInstance(ld.getConfig()) .putAll(locationFlags) .putIfAbsentAndNotNull(LocationInternal.NAMED_SPEC_NAME, ld.getName()) .putIfAbsentAndNotNull(LocationInternal.ORIGINAL_SPEC, ld.getName()); Maybe<LocationSpec<? extends Location>> result = getLocationSpec(ld.getSpec(), newLocationFlags.getAllConfigRaw()); if (result.isPresent()) { result.get().configure(LocationInternal.NAMED_SPEC_NAME, ld.getName()); result.get().configure(LocationInternal.ORIGINAL_SPEC, ld.getName()); } return result; }