Java源码示例:mil.nga.geopackage.metadata.reference.MetadataReferenceDao
示例1
/**
* Delete the Metadata extensions for the table
*
* @param geoPackage
* GeoPackage
* @param table
* table name
* @since 3.2.0
*/
public static void deleteMetadata(GeoPackageCore geoPackage, String table) {
MetadataReferenceDao metadataReferenceDao = geoPackage
.getMetadataReferenceDao();
try {
if (metadataReferenceDao.isTableExists()) {
metadataReferenceDao.deleteByTableName(table);
}
} catch (SQLException e) {
throw new GeoPackageException(
"Failed to delete Metadata extension. GeoPackage: "
+ geoPackage.getName() + ", Table: " + table,
e);
}
}
示例2
/**
* {@inheritDoc}
*/
@Override
public boolean createMetadataReferenceTable() {
verifyWritable();
boolean created = false;
MetadataReferenceDao dao = getMetadataReferenceDao();
try {
if (!dao.isTableExists()) {
created = tableCreator.createMetadataReference() > 0;
}
} catch (SQLException e) {
throw new GeoPackageException("Failed to check if "
+ MetadataReference.class.getSimpleName()
+ " table exists and create it", e);
}
return created;
}
示例3
/**
* Delete the Metadata, cascading
*
* @param metadata
* metadata
* @return deleted count
* @throws SQLException
* upon failure
*/
public int deleteCascade(Metadata metadata) throws SQLException {
int count = 0;
if (metadata != null) {
// Delete Metadata References and remove parent references
MetadataReferenceDao dao = getMetadataReferenceDao();
dao.deleteByMetadata(metadata.getId());
dao.removeMetadataParent(metadata.getId());
// Delete
count = delete(metadata);
}
return count;
}
示例4
/**
* Get or create a Metadata Reference DAO
*
* @return metadata reference dao
* @throws SQLException
*/
private MetadataReferenceDao getMetadataReferenceDao() throws SQLException {
if (metadataReferenceDao == null) {
metadataReferenceDao = DaoManager.createDao(connectionSource,
MetadataReference.class);
}
return metadataReferenceDao;
}
示例5
/**
* Test create
*
* @param geoPackage
* @throws SQLException
*/
public static void testCreate(GeoPackage geoPackage) throws SQLException {
MetadataReferenceDao dao = geoPackage.getMetadataReferenceDao();
MetadataDao metadataDao = geoPackage.getMetadataDao();
if (dao.isTableExists()) {
// Get current count
long count = dao.countOf();
long fileId = 5555;
long parentId = 5556;
// Create new metadata
Metadata metadata = new Metadata();
metadata.setId(fileId);
metadata.setMetadataScope(MetadataScopeType.FEATURE);
metadata.setStandardUri("https://www.nga.mil");
metadata.setMimeType("text/xml");
metadata.setMetadata("Create metadata text");
metadataDao.create(metadata);
Metadata metadata2 = new Metadata();
metadata2.setId(parentId);
metadata2.setMetadataScope(MetadataScopeType.FEATURE_TYPE);
metadata2.setStandardUri("https://www.nga.mil");
metadata2.setMimeType("text/xml");
metadata2.setMetadata("Create metadata text 2");
metadataDao.create(metadata2);
ReferenceScopeType scopeType = ReferenceScopeType.ROW;
String tableName = "CREATE_TABLE_NAME";
long rowIdValue = 50;
Date timestamp = new Date();
MetadataReference reference = new MetadataReference();
reference.setReferenceScope(scopeType);
reference.setTableName(tableName);
reference.setRowIdValue(rowIdValue);
reference.setTimestamp(timestamp);
reference.setMetadata(metadata);
reference.setParentMetadata(metadata2);
dao.create(reference);
// Verify count
long newCount = dao.countOf();
TestCase.assertEquals(count + 1, newCount);
// Verify saved metadata
List<MetadataReference> queryMetadataReferenceList = dao
.queryByMetadata(fileId, parentId);
TestCase.assertNotNull(queryMetadataReferenceList);
TestCase.assertEquals(1, queryMetadataReferenceList.size());
MetadataReference queryMetadataReference = queryMetadataReferenceList
.get(0);
TestCase.assertEquals(scopeType,
queryMetadataReference.getReferenceScope());
TestCase.assertEquals(tableName,
queryMetadataReference.getTableName());
TestCase.assertNull(queryMetadataReference.getColumnName());
TestCase.assertEquals(rowIdValue, queryMetadataReference
.getRowIdValue().longValue());
TestCase.assertEquals(timestamp,
queryMetadataReference.getTimestamp());
TestCase.assertEquals(fileId, queryMetadataReference.getFileId());
TestCase.assertEquals(parentId, queryMetadataReference
.getParentId().longValue());
TestCase.assertNotNull(queryMetadataReference.getMetadata());
TestCase.assertNotNull(queryMetadataReference.getParentMetadata());
}
}
示例6
/**
* Test delete
*
* @param geoPackage
* @throws SQLException
*/
public static void testDelete(GeoPackage geoPackage) throws SQLException {
MetadataReferenceDao dao = geoPackage.getMetadataReferenceDao();
if (dao.isTableExists()) {
List<MetadataReference> results = dao.queryForAll();
if (!results.isEmpty()) {
// Choose random metadata
int random = (int) (Math.random() * results.size());
MetadataReference metadataReference = results.get(random);
// Delete the metadata reference
dao.delete(metadataReference);
// Verify deleted
List<MetadataReference> queryMetadataReferenceList = dao
.queryByMetadata(metadataReference.getFileId(),
metadataReference.getParentId());
TestCase.assertTrue(queryMetadataReferenceList.isEmpty());
// Choose prepared deleted
results = dao.queryForAll();
if (!results.isEmpty()) {
// Choose random metadata
random = (int) (Math.random() * results.size());
metadataReference = results.get(random);
// Find which metadata to delete
QueryBuilder<MetadataReference, Void> qb = dao
.queryBuilder();
qb.where().eq(MetadataReference.COLUMN_FILE_ID,
metadataReference.getFileId());
PreparedQuery<MetadataReference> query = qb.prepare();
List<MetadataReference> queryResults = dao.query(query);
int count = queryResults.size();
// Delete
DeleteBuilder<MetadataReference, Void> db = dao
.deleteBuilder();
db.where().eq(MetadataReference.COLUMN_FILE_ID,
metadataReference.getFileId());
PreparedDelete<MetadataReference> deleteQuery = db
.prepare();
int deleted = dao.delete(deleteQuery);
TestCase.assertEquals(count, deleted);
}
}
}
}
示例7
/**
* {@inheritDoc}
*/
@Override
public MetadataReferenceDao getMetadataReferenceDao() {
return createDao(MetadataReference.class);
}
示例8
/**
* Test create
*
* @param geoPackage
* @throws SQLException
*/
public static void testCreate(GeoPackage geoPackage) throws SQLException {
MetadataReferenceDao dao = geoPackage.getMetadataReferenceDao();
MetadataDao metadataDao = geoPackage.getMetadataDao();
if (dao.isTableExists()) {
// Get current count
long count = dao.countOf();
long fileId = 5555;
long parentId = 5556;
// Create new metadata
Metadata metadata = new Metadata();
metadata.setId(fileId);
metadata.setMetadataScope(MetadataScopeType.FEATURE);
metadata.setStandardUri("https://www.nga.mil");
metadata.setMimeType("text/xml");
metadata.setMetadata("Create metadata text");
metadataDao.create(metadata);
Metadata metadata2 = new Metadata();
metadata2.setId(parentId);
metadata2.setMetadataScope(MetadataScopeType.FEATURE_TYPE);
metadata2.setStandardUri("https://www.nga.mil");
metadata2.setMimeType("text/xml");
metadata2.setMetadata("Create metadata text 2");
metadataDao.create(metadata2);
ReferenceScopeType scopeType = ReferenceScopeType.ROW;
String tableName = "CREATE_TABLE_NAME";
long rowIdValue = 50;
Date timestamp = new Date();
MetadataReference reference = new MetadataReference();
reference.setReferenceScope(scopeType);
reference.setTableName(tableName);
reference.setRowIdValue(rowIdValue);
reference.setTimestamp(timestamp);
reference.setMetadata(metadata);
reference.setParentMetadata(metadata2);
dao.create(reference);
// Verify count
long newCount = dao.countOf();
TestCase.assertEquals(count + 1, newCount);
// Verify saved metadata
List<MetadataReference> queryMetadataReferenceList = dao
.queryByMetadata(fileId, parentId);
TestCase.assertNotNull(queryMetadataReferenceList);
TestCase.assertEquals(1, queryMetadataReferenceList.size());
MetadataReference queryMetadataReference = queryMetadataReferenceList
.get(0);
TestCase.assertEquals(scopeType,
queryMetadataReference.getReferenceScope());
TestCase.assertEquals(tableName,
queryMetadataReference.getTableName());
TestCase.assertNull(queryMetadataReference.getColumnName());
TestCase.assertEquals(rowIdValue, queryMetadataReference
.getRowIdValue().longValue());
TestCase.assertEquals(timestamp,
queryMetadataReference.getTimestamp());
TestCase.assertEquals(fileId, queryMetadataReference.getFileId());
TestCase.assertEquals(parentId, queryMetadataReference
.getParentId().longValue());
TestCase.assertNotNull(queryMetadataReference.getMetadata());
TestCase.assertNotNull(queryMetadataReference.getParentMetadata());
}
}
示例9
/**
* Test delete
*
* @param geoPackage
* @throws SQLException
*/
public static void testDelete(GeoPackage geoPackage) throws SQLException {
MetadataReferenceDao dao = geoPackage.getMetadataReferenceDao();
if (dao.isTableExists()) {
List<MetadataReference> results = dao.queryForAll();
if (!results.isEmpty()) {
// Choose random metadata
int random = (int) (Math.random() * results.size());
MetadataReference metadataReference = results.get(random);
// Delete the metadata reference
dao.delete(metadataReference);
// Verify deleted
List<MetadataReference> queryMetadataReferenceList = dao
.queryByMetadata(metadataReference.getFileId(),
metadataReference.getParentId());
TestCase.assertTrue(queryMetadataReferenceList.isEmpty());
// Choose prepared deleted
results = dao.queryForAll();
if (!results.isEmpty()) {
// Choose random metadata
random = (int) (Math.random() * results.size());
metadataReference = results.get(random);
// Find which metadata to delete
QueryBuilder<MetadataReference, Void> qb = dao
.queryBuilder();
qb.where().eq(MetadataReference.COLUMN_FILE_ID,
metadataReference.getFileId());
PreparedQuery<MetadataReference> query = qb.prepare();
List<MetadataReference> queryResults = dao.query(query);
int count = queryResults.size();
// Delete
DeleteBuilder<MetadataReference, Void> db = dao
.deleteBuilder();
db.where().eq(MetadataReference.COLUMN_FILE_ID,
metadataReference.getFileId());
PreparedDelete<MetadataReference> deleteQuery = db
.prepare();
int deleted = dao.delete(deleteQuery);
TestCase.assertEquals(count, deleted);
}
}
}
}
示例10
/**
* Get a Metadata Reference DAO
*
* @return Metadata Reference DAO
*/
public MetadataReferenceDao getMetadataReferenceDao();