@Override public void addCustomFields(final List<CustomField> customFields, final CallContext context) throws CustomFieldApiException { if (!customFields.isEmpty()) { final InternalCallContext internalCallContext = internalCallContextFactory.createInternalCallContext(customFields.get(0).getObjectId(), customFields.get(0).getObjectType(), context); final Iterable<CustomFieldModelDao> transformed = Iterables.transform(customFields, new Function<CustomField, CustomFieldModelDao>() { @Override public CustomFieldModelDao apply(final CustomField input) { // Respect user-specified ID // TODO See https://github.com/killbill/killbill/issues/35 if (input.getId() != null) { return new CustomFieldModelDao(input.getId(), context.getCreatedDate(), context.getCreatedDate(), input.getFieldName(), input.getFieldValue(), input.getObjectId(), input.getObjectType()); } else { return new CustomFieldModelDao(context.getCreatedDate(), input.getFieldName(), input.getFieldValue(), input.getObjectId(), input.getObjectType()); } } }); ((DefaultCustomFieldDao) customFieldDao).create(transformed, internalCallContext); } }
@Override public List<CustomFieldModelDao> getCustomFieldsForAccountType(final ObjectType objectType, final InternalTenantContext context) { final List<CustomFieldModelDao> allFields = getCustomFieldsForAccount(context); return ImmutableList.<CustomFieldModelDao>copyOf(Collections2.filter(allFields, new Predicate<CustomFieldModelDao>() { @Override public boolean apply(@Nullable final CustomFieldModelDao input) { return input.getObjectType() == objectType; } })); }
@Override public Void inTransaction(final EntitySqlDaoWrapperFactory entitySqlDaoWrapperFactory) throws Exception { final CustomFieldSqlDao sqlDao = entitySqlDaoWrapperFactory.become(CustomFieldSqlDao.class); for (final UUID cur : customFieldIds) { final CustomFieldModelDao customField = sqlDao.getById(cur.toString(), context); if (customField != null) { sqlDao.markTagAsDeleted(cur.toString(), context); postBusEventFromTransaction(customField, customField, ChangeType.DELETE, entitySqlDaoWrapperFactory, context); } } return null; } });
@Override public Void inTransaction(final EntitySqlDaoWrapperFactory entitySqlDaoWrapperFactory) throws Exception { final CustomFieldSqlDao sqlDao = entitySqlDaoWrapperFactory.become(CustomFieldSqlDao.class); for (final CustomFieldModelDao cur : customFieldIds) { final CustomFieldModelDao customField = sqlDao.getById(cur.getId().toString(), context); validateCustomField(cur, customField); sqlDao.updateValue(cur.getId().toString(), cur.getFieldValue(), context); postBusEventFromTransaction(customField, customField, ChangeType.UPDATE, entitySqlDaoWrapperFactory, context); } return null; } });
@Override public List<CustomFieldModelDao> getCustomFieldsForAccountType(final ObjectType objectType, final InternalTenantContext context) { final List<CustomFieldModelDao> allFields = getCustomFieldsForAccount(context); return ImmutableList.<CustomFieldModelDao>copyOf(Collections2.filter(allFields, new Predicate<CustomFieldModelDao>() { @Override public boolean apply(@Nullable final CustomFieldModelDao input) { return input.getObjectType() == objectType; } })); }
@Override public void addCustomFields(final List<CustomField> customFields, final CallContext context) throws CustomFieldApiException { if (!customFields.isEmpty()) { final InternalCallContext internalCallContext = internalCallContextFactory.createInternalCallContext(customFields.get(0).getObjectId(), customFields.get(0).getObjectType(), context); final Iterable<CustomFieldModelDao> transformed = Iterables.transform(customFields, new Function<CustomField, CustomFieldModelDao>() { @Override public CustomFieldModelDao apply(final CustomField input) { // Respect user-specified ID // TODO See https://github.com/killbill/killbill/issues/35 if (input.getId() != null) { return new CustomFieldModelDao(input.getId(), context.getCreatedDate(), context.getCreatedDate(), input.getFieldName(), input.getFieldValue(), input.getObjectId(), input.getObjectType()); } else { return new CustomFieldModelDao(context.getCreatedDate(), input.getFieldName(), input.getFieldValue(), input.getObjectId(), input.getObjectType()); } } }); ((DefaultCustomFieldDao) customFieldDao).create(transformed, internalCallContext); } }
@Override public Void inTransaction(final EntitySqlDaoWrapperFactory entitySqlDaoWrapperFactory) throws Exception { final CustomFieldSqlDao sqlDao = entitySqlDaoWrapperFactory.become(CustomFieldSqlDao.class); for (final UUID cur : customFieldIds) { final CustomFieldModelDao customField = sqlDao.getById(cur.toString(), context); if (customField != null) { sqlDao.markTagAsDeleted(cur.toString(), context); postBusEventFromTransaction(customField, customField, ChangeType.DELETE, entitySqlDaoWrapperFactory, context); } } return null; } });
@Override public Void inTransaction(final EntitySqlDaoWrapperFactory entitySqlDaoWrapperFactory) throws Exception { final CustomFieldSqlDao sqlDao = entitySqlDaoWrapperFactory.become(CustomFieldSqlDao.class); for (final CustomFieldModelDao cur : customFieldIds) { final CustomFieldModelDao customField = sqlDao.getById(cur.getId().toString(), context); validateCustomField(cur, customField); sqlDao.updateValue(cur.getId().toString(), cur.getFieldValue(), context); postBusEventFromTransaction(customField, customField, ChangeType.UPDATE, entitySqlDaoWrapperFactory, context); } return null; } });