/** * Adds a relationship between the base and user related table. Creates the * user mapping table and related table if needed. * * @param baseTableName * base table name * @param relatedTable * user related table * @param userMappingTable * user mapping table * @return The relationship that was added */ public ExtendedRelation addRelationship(String baseTableName, UserRelatedTable relatedTable, UserMappingTable userMappingTable) { // Create the related table if needed createRelatedTable(relatedTable); return addRelationship(baseTableName, relatedTable.getTableName(), userMappingTable, relatedTable.getRelationName()); }
/** * Set the contents in the user related table * * @param table * user related table */ protected void setContents(UserRelatedTable table) { ContentsDao dao = geoPackage.getContentsDao(); Contents contents = null; try { contents = dao.queryForId(table.getTableName()); } catch (SQLException e) { throw new GeoPackageException("Failed to retrieve " + Contents.class.getSimpleName() + " for table name: " + table.getTableName(), e); } if (contents == null) { throw new GeoPackageException( "No Contents Table exists for table name: " + table.getTableName()); } table.setContents(contents); }
String relatedTableName = relatedTable.getTableName(); if (!geoPackage.isTable(relatedTableName)) { contents.setDataTypeString(relatedTable.getDataType()); contents.setIdentifier(relatedTableName); ContentsDao contentsDao = geoPackage.getContentsDao(); contentsDao.refresh(contents); relatedTable.setContents(contents);