/** * @return the queryBuilder */ public JdbcQueryBuilder getQueryBuilder() { if (queryBuilder == null) { queryBuilder = new JdbcQueryBuilder(); } return queryBuilder; }
/** {@inheritDoc} */ @Transactional public void clear() { getJdbcTemplate().update(getQueryBuilder().deleteAllRoles()); getJdbcTemplate().update(getQueryBuilder().deleteAllCustomProperties()); getJdbcTemplate().update(getQueryBuilder().deleteAllFeatures()); }
/** * Remove all existing permissions and create new. * * @param fp */ private void createProperties(Feature fp) { if (fp.getCustomProperties() != null) { getJdbcTemplate().update(getQueryBuilder().deleteAllFeatureCustomProperties(), fp.getUid()); for (String propertyName : fp.getCustomProperties().keySet()) { Property<?> ap = fp.getCustomProperties().get(propertyName); String fixedValues = null; if (ap.getFixedValues() != null && ap.getFixedValues().size() > 0) { fixedValues = ap.getFixedValues().toString(); fixedValues = fixedValues.substring(1, fixedValues.length() - 1); } getJdbcTemplate().update(getQueryBuilder().createFeatureProperty(), ap.getName(), ap.getType(), ap.asString(), ap.getDescription(), fixedValues, fp.getUid()); } } }
ps = sqlConn.prepareStatement(getQueryBuilder().createFeature()); ps.setString(1, fp.getUid()); ps.setInt(2, fp.isEnable() ? 1 : 0); ps = sqlConn.prepareStatement(getQueryBuilder().addRoleToFeature()); ps.setString(1, fp.getUid()); ps.setString(2, role);
/** {@inheritDoc} */ @Transactional public void addToGroup(String uid, String groupName) { if (uid == null || uid.isEmpty()) { throw new IllegalArgumentException(FEATURE_IDENTIFIER_CANNOT_BE_NULL_NOR_EMPTY); } if (groupName == null || groupName.isEmpty()) { throw new IllegalArgumentException(GROUPNAME_CANNOT_BE_NULL_NOR_EMPTY); } if (!exist(uid)) { throw new FeatureNotFoundException(uid); } getJdbcTemplate().update(getQueryBuilder().addFeatureToGroup(), groupName, uid); }
/** * Remove all existing permissions and create new. * * @param fp */ private void createPermissions(Feature fp) { if (fp.getPermissions() != null) { getJdbcTemplate().update(getQueryBuilder().deleteRoles(), fp.getUid()); for (String role : fp.getPermissions()) { getJdbcTemplate().update(getQueryBuilder().addRoleToFeature(), fp.getUid(), role); } } }
fExpression = MappingUtil.fromMap(fp.getFlippingStrategy().getInitParams()); update(getQueryBuilder().updateFeature(), enable, fp.getDescription(), fStrategy, fExpression, fp.getGroup(), fp.getUid()); ps = sqlConn.prepareStatement(getQueryBuilder().deleteAllFeatureCustomProperties()); ps.setString(1, fpExist.getUid()); ps.executeUpdate();
/** {@inheritDoc} */ @Transactional public void grantRoleOnFeature(String uid, String roleName) { if (uid == null || uid.isEmpty()) { throw new IllegalArgumentException(FEATURE_IDENTIFIER_CANNOT_BE_NULL_NOR_EMPTY); } if (roleName == null || roleName.isEmpty()) { throw new IllegalArgumentException("roleName cannot be null nor empty"); } if (!exist(uid)) { throw new FeatureNotFoundException(uid); } getJdbcTemplate().update(getQueryBuilder().addRoleToFeature(), uid, roleName); }
/** {@inheritDoc} */ public void clear() { getJdbcTemplate().update(getQueryBuilder().deleteAllProperties()); }
/** {@inheritDoc} */ public <T> void createProperty(Property<T> ap) { Util.assertNotNull(ap); Connection sqlConn = null; PreparedStatement ps = null; try { sqlConn = getDataSource().getConnection(); if (existProperty(ap.getName())) { throw new PropertyAlreadyExistException(ap.getName()); } ps = sqlConn.prepareStatement(getQueryBuilder().createProperty()); ps.setString(1, ap.getName()); ps.setString(2, ap.getType()); ps.setString(3, ap.asString()); ps.setString(4, ap.getDescription()); if (ap.getFixedValues() != null && !ap.getFixedValues().isEmpty()) { String fixedValues = ap.getFixedValues().toString(); ps.setString(5, fixedValues.substring(1, fixedValues.length() - 1)); } else { ps.setString(5, null); } ps.executeUpdate(); } catch (SQLException sqlEX) { throw new PropertyAccessException("Cannot update properties database, SQL ERROR", sqlEX); } finally { // Connection is closed alse here within clos statement closeStatement(ps); closeConnection(sqlConn); } }
/** * Delete properties related to a feature. * * @param featureId * current feature uid */ private void deleteProperties(String featureId) { getJdbcTemplate().update(getQueryBuilder().deleteAllFeatureCustomProperties(), featureId); }
PreparedStatement ps = sqlConn.prepareStatement(getQueryBuilder().createFeatureProperty()); ps.setString(1, pp.getName()); ps.setString(2, pp.getType());
private void createCoreFeature(Feature fp) { // Transaction wraps the method, could pipe several sql queries String strategyColumn = null; String expressionColumn = null; if (fp.getFlippingStrategy() != null) { strategyColumn = fp.getFlippingStrategy().getClass().getName(); expressionColumn = MappingUtil.fromMap(fp.getFlippingStrategy().getInitParams()); } getJdbcTemplate().update(getQueryBuilder().createFeature(), fp.getUid(), fp.isEnable() ? 1 : 0, fp.getDescription(), strategyColumn, expressionColumn, fp.getGroup()); }
/** {@inheritDoc} */ @Override public void clear() { Connection sqlConn = null; PreparedStatement ps = null; try { sqlConn = dataSource.getConnection(); ps = sqlConn.prepareStatement(getQueryBuilder().deleteAllCustomProperties()); ps.executeUpdate(); closeStatement(ps); ps = null; ps = sqlConn.prepareStatement(getQueryBuilder().deleteAllRoles()); ps.executeUpdate(); closeStatement(ps); ps = null; ps = sqlConn.prepareStatement(getQueryBuilder().deleteAllFeatures()); ps.executeUpdate(); closeStatement(ps); ps = null; } catch (SQLException sqlEX) { throw new FeatureAccessException(CANNOT_CHECK_FEATURE_EXISTENCE_ERROR_RELATED_TO_DATABASE, sqlEX); } finally { closeStatement(ps); closeConnection(sqlConn); } }
/** {@inheritDoc} */ @Transactional public void removeFromGroup(String uid, String groupName) { if (uid == null || uid.isEmpty()) { throw new IllegalArgumentException(FEATURE_IDENTIFIER_CANNOT_BE_NULL_NOR_EMPTY); } if (groupName == null || groupName.isEmpty()) { throw new IllegalArgumentException(GROUPNAME_CANNOT_BE_NULL_NOR_EMPTY); } if (!exist(uid)) { throw new FeatureNotFoundException(uid); } if (!existGroup(groupName)) { throw new GroupNotFoundException(groupName); } getJdbcTemplate().update(getQueryBuilder().addFeatureToGroup(), "", uid); }
/** {@inheritDoc} */ @Override public void grantRoleOnFeature(String uid, String roleName) { assertFeatureExist(uid); assertHasLength(roleName); update(getQueryBuilder().addRoleToFeature(), uid, roleName); }
/** {@inheritDoc} */ public void clear() { PreparedStatement ps = null; Connection sqlConn = null; try { sqlConn = getDataSource().getConnection(); ps = buildStatement(sqlConn, getQueryBuilder().deleteAllProperties()); ps.executeUpdate(); } catch (SQLException sqlEX) { throw new PropertyAccessException("Cannot clear properties table, SQL ERROR", sqlEX); } finally { closeStatement(ps); closeConnection(sqlConn); } }
/** {@inheritDoc} */ public <T> void createProperty(Property<T> ap) { Util.assertNotNull(ap); Util.assertHasLength(ap.getName()); if (existProperty(ap.getName())) { throw new PropertyAlreadyExistException(ap.getName()); } String fixedValues = null; if (ap.getFixedValues() != null && ap.getFixedValues().size() > 0) { fixedValues = ap.getFixedValues().toString(); fixedValues = fixedValues.substring(1, fixedValues.length() - 1); } getJdbcTemplate().update(getQueryBuilder().createProperty(), ap.getName(), ap.getType(), ap.asString(), ap.getDescription(), fixedValues); }
/** * @return the queryBuilder */ public JdbcQueryBuilder getQueryBuilder() { if (queryBuilder == null) { queryBuilder = new JdbcQueryBuilder(); } return queryBuilder; }
/** {@inheritDoc} */ @Override public void addToGroup(String uid, String groupName) { assertFeatureExist(uid); assertHasLength(groupName); update(getQueryBuilder().addFeatureToGroup(), groupName, uid); }