public boolean apply(Feature input) { return input.getFeature().equals(feature) && input.getFeatureSlug().equals(featureSlug); } }).first().orNull();
@Override public Feature map(int index, ResultSet resultSet, StatementContext ctx) throws SQLException { Feature feature = new Feature(); feature.setId((UUID) resultSet.getObject("id")); feature.setParentId((UUID) resultSet.getObject("parent_id")); feature.setSlug(resultSet.getString("slug")); feature.setTitle(resultSet.getString("title")); feature.setFeature(resultSet.getString("feature")); feature.setFeatureSlug(resultSet.getString("feature_slug")); if (MapperUtils.hasColumn("localization_data", resultSet) && !Strings.isNullOrEmpty(resultSet.getString("localization_data"))) { ObjectMapper mapper = new ObjectMapper(); try { Map<Locale, Map<String, Object>> localizedVersions = Maps.newHashMap(); Map[] data = mapper.readValue(resultSet.getString("localization_data"), Map[].class); for (Map map : data) { localizedVersions.put(Locale.forLanguageTag((String) map.get("locale")), (Map) map.get("entity")); } feature.setLocalizedVersions(localizedVersions); } catch (IOException e) { throw new SQLException("Failed to de-serialize localization JSON data", e); } } return feature; } }
public Feature createFeature(final Feature feature) throws InvalidEntityException, EntityAlreadyExistsException { if (feature.getParentId() == null) { throw new InvalidEntityException("Cannot create a feature without a parent product specified"); } Product product = this.findById(feature.getParentId()); if (product == null) { throw new InvalidEntityException("Specified parent product does not exist"); } boolean exists = findFeature(product, feature.getFeature(), feature.getFeatureSlug()) != null; if (exists) { throw new EntityAlreadyExistsException(); } if (!feature.getAddons().isLoaded()) { feature.setAddons(new HashMap<String, AddonGroup>()); } getObservationManager().notify(new EntityCreatingEvent(), feature); this.featureDao.begin(); UUID entityId = UUID.randomUUID(); feature.setId(entityId); this.featureDao.createChildEntity(feature, FEATURE_TABLE_NAME, getTenant()); this.featureDao.createFeature(feature); this.featureDao.createOrUpdateAddons(feature); this.featureDao.commit(); getObservationManager().notify(new EntityCreatedEvent(), feature); return feature; }
public boolean apply(Feature input) { return input.getFeature().equals(feature); } }).toList();