/** {@inheritDoc} */ @Override public void enable(String uid) { assertFeatureExist(uid); update(getQueryBuilder().enableFeature(), uid); }
/** {@inheritDoc} */ @Override public void removeFromGroup(String uid, String groupName) { assertFeatureExist(uid); assertGroupExist(groupName); Feature feat = read(uid); if (feat.getGroup() != null && !feat.getGroup().equals(groupName)) { throw new IllegalArgumentException("'" + uid + "' is not in group '" + groupName + "'"); } update(getQueryBuilder().addFeatureToGroup(), "", uid); }
/** * Constructor from DataSource. * * @param jdbcDS * native jdbc datasource */ public JdbcFeatureStore(DataSource jdbcDS, String xmlConfFile) { this(jdbcDS); importFeaturesFromXmlFile(xmlConfFile); }
/** {@inheritDoc} */ @Override public void enableGroup(String groupName) { assertGroupExist(groupName); update(getQueryBuilder().enableGroup(), groupName); }
assertFeatureNotNull(fp); Connection sqlConn = null; PreparedStatement ps = null; Feature fpExist = read(fp.getUid()); int enable = 0; if (fp.isEnable()) { fExpression = MappingUtil.fromMap(fp.getFlippingStrategy().getInitParams()); update(getQueryBuilder().updateFeature(), enable, fp.getDescription(), fStrategy, fExpression, fp.getGroup(), fp.getUid()); toBeDeleted.removeAll(fp.getPermissions()); for (String roleToBeDelete : toBeDeleted) { removeRoleFromFeature(fpExist.getUid(), roleToBeDelete); toBeAdded.removeAll(fpExist.getPermissions()); for (String addee : toBeAdded) { grantRoleOnFeature(fpExist.getUid(), addee); ps = sqlConn.prepareStatement(getQueryBuilder().deleteAllFeatureCustomProperties()); ps.setString(1, fpExist.getUid()); ps.executeUpdate(); ps = createCustomProperty(sqlConn, fp.getUid(), property); closeStatement(ps); ps = null;
assertFeatureNotNull(fp); Connection sqlConn = null; PreparedStatement ps = null; sqlConn = getDataSource().getConnection(); if (exist(fp.getUid())) { throw new FeatureAlreadyExistException(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); ps = createCustomProperty(sqlConn, fp.getUid(), pp); closeStatement(ps); ps = null;
assertFeatureExist(uid); Connection sqlConn = null; PreparedStatement ps = null; try { sqlConn = getDataSource().getConnection(); previousAutoCommit = sqlConn.getAutoCommit(); sqlConn.setAutoCommit(false); Feature fp = read(uid); ps = sqlConn.prepareStatement(getQueryBuilder().deleteFeatureProperty()); ps.setString(1, property); ps.setString(2, fp.getUid()); ps = sqlConn.prepareStatement(getQueryBuilder().deleteFeatureRole()); ps.setString(1, fp.getUid()); ps.setString(2, role); ps = sqlConn.prepareStatement(getQueryBuilder().deleteFeature()); ps.setString(1, fp.getUid()); ps.executeUpdate();
assertFeatureExist(uid); Connection sqlConn = null; PreparedStatement ps = null; ResultSet rs = null; try { sqlConn = getDataSource().getConnection(); ps = sqlConn.prepareStatement(getQueryBuilder().getFeature()); ps.setString(1, uid); rs = ps.executeQuery(); ps = sqlConn.prepareStatement(getQueryBuilder().getRoles()); ps.setString(1, uid); rs = ps.executeQuery(); ps = sqlConn.prepareStatement(getQueryBuilder().getFeatureProperties()); ps.setString(1, uid); rs = ps.executeQuery();
/** {@inheritDoc} */ @Override public boolean exist(String uid) { assertHasLength(uid); Connection sqlConn = null; PreparedStatement ps = null; ResultSet rs = null; try { sqlConn = getDataSource().getConnection(); ps = JdbcUtils.buildStatement(sqlConn, getQueryBuilder().existFeature(), uid); rs = ps.executeQuery(); rs.next(); return 1 == rs.getInt(1); } catch (SQLException sqlEX) { throw new FeatureAccessException(CANNOT_CHECK_FEATURE_EXISTENCE_ERROR_RELATED_TO_DATABASE, sqlEX); } finally { closeResultSet(rs); closeStatement(ps); closeConnection(sqlConn); } }
/** {@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); } }
assertGroupExist(groupName); LinkedHashMap<String, Feature> mapFP = new LinkedHashMap<String, Feature>(); Connection sqlConn = null; ps = sqlConn.prepareStatement(getQueryBuilder().getFeatureOfGroup()); ps.setString(1, groupName); rs = ps.executeQuery(); ps = sqlConn.prepareStatement(getQueryBuilder().getAllRoles()); rs = ps.executeQuery(); while (rs.next()) { ps = sqlConn.prepareStatement(getQueryBuilder().getFeatureProperties()); ps.setString(1, f.getUid()); rs = ps.executeQuery();
ps = createCustomProperty(sqlConn, uid, pp); closeStatement(ps); ps = null;
/** {@inheritDoc} */ @Override public void disableGroup(String groupName) { assertGroupExist(groupName); update(getQueryBuilder().disableGroup(), groupName); }
/** {@inheritDoc} */ @Override public void createSchema() { DataSource ds = getDataSource(); JdbcQueryBuilder qb = getQueryBuilder(); String dbSchema = queryBuilder.getDbSchema(); if (!isTableExist(ds, qb.getTableNameFeatures(), dbSchema)) { executeUpdate(ds, qb.sqlCreateTableFeatures()); } if (!isTableExist(ds, qb.getTableNameCustomProperties(), dbSchema)) { executeUpdate(ds, qb.sqlCreateTableCustomProperties()); } if (!isTableExist(ds, qb.getTableNameRoles(), dbSchema)) { executeUpdate(ds, qb.sqlCreateTableRoles()); } }
/** {@inheritDoc} */ @Override public boolean existGroup(String groupName) { assertHasLength(groupName); Connection sqlConn = null; PreparedStatement ps = null; ResultSet rs = null; try { sqlConn = dataSource.getConnection(); ps = sqlConn.prepareStatement(getQueryBuilder().existGroup()); ps.setString(1, groupName); rs = ps.executeQuery(); rs.next(); return rs.getInt(1) > 0; } catch (SQLException sqlEX) { throw new FeatureAccessException(CANNOT_CHECK_FEATURE_EXISTENCE_ERROR_RELATED_TO_DATABASE, sqlEX); } finally { closeResultSet(rs); closeStatement(ps); closeConnection(sqlConn); } }
/** {@inheritDoc} */ @Override public void disable(String uid) { assertFeatureExist(uid); update(getQueryBuilder().disableFeature(), uid); }
PreparedStatement ps = sqlConn.prepareStatement(getQueryBuilder().createFeatureProperty()); ps.setString(1, pp.getName()); ps.setString(2, pp.getType());
/** {@inheritDoc} */ @Override public void removeRoleFromFeature(String uid, String roleName) { assertFeatureExist(uid); assertHasLength(roleName); update(getQueryBuilder().deleteFeatureRole(), uid, roleName); }
/** {@inheritDoc} */ @Override public Set<String> readAllGroups() { Set<String> setOFGroup = new HashSet<String>(); Connection sqlConn = null; PreparedStatement ps = null; ResultSet rs = null; try { // Returns features sqlConn = dataSource.getConnection(); ps = sqlConn.prepareStatement(getQueryBuilder().getAllGroups()); rs = ps.executeQuery(); while (rs.next()) { String groupName = rs.getString(COL_FEAT_GROUPNAME); if (Util.hasLength(groupName)) { setOFGroup.add(groupName); } } return setOFGroup; } catch (SQLException sqlEX) { throw new FeatureAccessException("Cannot list groups, error related to database", sqlEX); } finally { closeResultSet(rs); closeStatement(ps); closeConnection(sqlConn); } }
/** {@inheritDoc} */ @Override public void addToGroup(String uid, String groupName) { assertFeatureExist(uid); assertHasLength(groupName); update(getQueryBuilder().addFeatureToGroup(), groupName, uid); }