@Override public Map<String, String> getDataAttributes(final Map<String, String> macroParameters) { final Function2<String, Integer, Integer> headingLevelParser = new Function2<String, Integer, Integer>() { @Override public Integer apply(final String parameterName, final Integer defaultValue) { final Integer value = Integer.valueOf(defaultString(macroParameters.get(parameterName), String.valueOf(defaultValue))); return HEADER_LEVEL_RANGE.contains(value) ? value : defaultValue; } }; final int min = headingLevelParser.apply(minMacroParameterName, MIN_HEADER_LEVEL); final int max = headingLevelParser.apply(maxMacroParameterName, MAX_HEADER_LEVEL); final ImmutableList.Builder<String> headerElements = ImmutableList.builder(); for (int i = min; i <= max; ++i) { headerElements.add("H" + i); } return ImmutableMap.of(dataAttributeName, Joiner.on(',').join(headerElements.build())); } };
@Override public void put(ApplicationUser user, @Nonnull String entityName, @Nonnull Long entityId, @Nonnull String key, @Nullable String json, Function2<ApplicationUser, EntityProperty, ? extends EntityPropertySetEvent> eventFunction, boolean dispatchEvent){ put(entityName, entityId, key, json); if(dispatchEvent && eventFunction != null) { EntityProperty property = get(entityName, entityId, key); if(property != null) { eventPublisher.publish(eventFunction.apply(user, property)); } } }
@Override public void init(final Map<String, String> params) throws PluginParseException { super.init(params); String entity = getNonNullValueFromParameter(params, "entity"); String propertyKey = getNonNullValueFromParameter(params, "propertyKey"); String expectedValue = getNonNullValueFromParameter(params, "value"); if (conditionFactories.containsKey(entity)) { condition = conditionFactories.get(entity).apply(propertyKey, expectedValue); } else { throw new PluginParseException("Invalid entity parameter. Possible values are [" + conditionFactories.keySet() + "]."); } }
@Override public void deleteProperty(final ApplicationUser user, @Nonnull final DeletePropertyValidationResult validationResult) { checkNotNull(validationResult); checkArgument(validationResult.isValid()); checkNotNull(validationResult.getEntityProperty()); checkArgument(validationResult.getEntityProperty().isDefined()); EntityProperty entityProperty = validationResult.getEntityProperty().get(); jsonEntityPropertyManager.delete(dbEntityName, entityProperty.getEntityId(), entityProperty.getKey()); eventPublisher.publish(entityPropertyHelper.createDeletePropertyEventFunction().apply(user, entityProperty)); }
@Override public ErrorCollection apply(final ApplicationUser user, final ChangeHistory changeGroup) { Either<ErrorCollection, Issue> issue = getIssueFromChangeHistory(changeGroup); if (issue.isLeft()) { return issue.left().get(); } return issuePermissionFunction.apply(user, issue.right().get()); } }
await(reindexFunction.apply(entities, context));