Example #1
0
  protected void updateAdminProperties(Location location, PropertyMap changes, boolean creating) {

    for (Map.Entry<String, Object> change : changes.entrySet()) {
      String property = change.getKey();
      Object value = change.getValue();

      if (property.startsWith(AdminLevelDTO.PROPERTY_PREFIX)) {

        int levelId = AdminLevelDTO.levelIdForPropertyName(property);
        AdminEntityDTO entity = (AdminEntityDTO) value;

        if (creating) {
          if (entity != null) {
            locationDAO.addAdminMembership(location.getId(), entity.getId());
          }
        } else {
          if (entity != null) {
            locationDAO.updateAdminMembership(location.getId(), levelId, entity.getId());
          } else {
            locationDAO.removeMembership(location.getId(), levelId);
          }
        }
      }
    }
  }
Example #2
0
 @Override
 public Promise<List<AdminEntityDTO>> apply(AdminEntityDTO input) {
   if (input.getParentId() == null) {
     return Promise.resolved(Collections.<AdminEntityDTO>emptyList());
   } else {
     return Promise.resolved(input.getParentId()).join(new FetchEntityFunction());
   }
 }
Example #3
0
    @Override
    public CreateLocation apply(List<AdminEntityDTO> entities) {

      AdminEntityDTO entity = entities.get(0);
      Preconditions.checkState(entity.getLevelId() == locationType.getBoundAdminLevelId());

      Map<String, Object> properties = new HashMap<>();
      properties.put("id", locationId);
      properties.put("locationTypeId", locationType.getId());
      properties.put("name", entity.getName());

      for (AdminEntityDTO parent : entities) {
        properties.put(AdminLevelDTO.getPropertyName(parent.getLevelId()), parent.getId());
      }

      return new CreateLocation(properties);
    }