Java源码示例:mil.nga.geopackage.extension.contents.ContentsIdExtension
示例1
private void validateNGAExtensions(GeoPackage geoPackage, boolean has)
throws SQLException {
ExtensionsDao extensionsDao = geoPackage.getExtensionsDao();
TestCase.assertEquals(
has && GEOMETRY_INDEX,
extensionsDao.isTableExists()
&& !extensionsDao.queryByExtension(
FeatureTableIndex.EXTENSION_NAME).isEmpty());
TestCase.assertEquals(has && FEATURE_TILE_LINK,
new FeatureTileTableLinker(geoPackage).has());
TestCase.assertEquals(
has && TILE_SCALING,
extensionsDao.isTableExists()
&& !extensionsDao.queryByExtension(
TileTableScaling.EXTENSION_NAME).isEmpty());
TestCase.assertEquals(has && PROPERTIES, new PropertiesExtension(
geoPackage).has());
TestCase.assertEquals(has && CONTENTS_ID, new ContentsIdExtension(
geoPackage).has());
TestCase.assertEquals(has && FEATURE_STYLE, new FeatureStyleExtension(
geoPackage).has());
}
示例2
/**
* Copy the Contents Id extensions for the table
*
* @param geoPackage
* GeoPackage
* @param table
* table name
* @param newTable
* new table name
* @since 3.3.0
*/
public static void copyContentsId(GeoPackageCore geoPackage, String table,
String newTable) {
try {
ContentsIdExtension contentsIdExtension = new ContentsIdExtension(
geoPackage);
if (contentsIdExtension.has()) {
if (contentsIdExtension.get(table) != null) {
contentsIdExtension.create(newTable);
}
}
} catch (Exception e) {
logger.log(Level.WARNING, "Failed to create Contents Id for table: "
+ newTable + ", copied from table: " + table, e);
}
}
示例3
private void validateNGAExtensions(GeoPackage geoPackage, boolean has)
throws SQLException {
ExtensionsDao extensionsDao = geoPackage.getExtensionsDao();
TestCase.assertEquals(has && GEOMETRY_INDEX,
extensionsDao.isTableExists() && !extensionsDao
.queryByExtension(FeatureTableIndex.EXTENSION_NAME)
.isEmpty());
TestCase.assertEquals(has && FEATURE_TILE_LINK,
new FeatureTileTableLinker(geoPackage).has());
TestCase.assertEquals(has && TILE_SCALING,
extensionsDao.isTableExists() && !extensionsDao
.queryByExtension(TileTableScaling.EXTENSION_NAME)
.isEmpty());
TestCase.assertEquals(has && PROPERTIES,
new PropertiesExtension(geoPackage).has());
TestCase.assertEquals(has && CONTENTS_ID,
new ContentsIdExtension(geoPackage).has());
TestCase.assertEquals(has && FEATURE_STYLE,
new FeatureStyleExtension(geoPackage).has());
}
示例4
/**
* Check if the contents ids contain the table
*
* @param contentsIds contents ids
* @param tableName table name
* @param contentsIdExtension contents id extension
* @return true if contains
*/
private static boolean containsTable(List<ContentsId> contentsIds,
String tableName, ContentsIdExtension contentsIdExtension) {
boolean contains = false;
for (ContentsId contentsId : contentsIds) {
contains = contentsId.getTableName().equals(tableName);
if (contains) {
break;
}
}
return contains;
}
示例5
/**
* Delete the Contents Id extensions for the table
*
* @param geoPackage
* GeoPackage
* @param table
* table name
* @since 3.2.0
*/
public static void deleteContentsId(GeoPackageCore geoPackage,
String table) {
ContentsIdExtension contentsIdExtension = new ContentsIdExtension(
geoPackage);
if (contentsIdExtension.has()) {
contentsIdExtension.delete(table);
}
}
示例6
/**
* Delete the Contents Id extension including the extension entries and
* custom tables
*
* @param geoPackage
* GeoPackage
* @since 3.2.0
*/
public static void deleteContentsIdExtension(GeoPackageCore geoPackage) {
ContentsIdExtension contentsIdExtension = new ContentsIdExtension(
geoPackage);
if (contentsIdExtension.has()) {
contentsIdExtension.removeExtension();
}
}
示例7
/**
* Check if the contents ids contain the table
*
* @param contentsIds
* contents ids
* @param tableName
* table name
* @param contentsIdExtension
* contents id extension
* @return true if contains
*/
private static boolean containsTable(List<ContentsId> contentsIds,
String tableName, ContentsIdExtension contentsIdExtension) {
boolean contains = false;
for (ContentsId contentsId : contentsIds) {
contains = contentsId.getTableName().equals(tableName);
if (contains) {
break;
}
}
return contains;
}
示例8
private static void insertRelatedTablesMediaPreviewExtensionRows(
GeoPackage geoPackage, RelatedTablesExtension relatedTables)
throws IOException {
ContentsIdExtension contentsId = new ContentsIdExtension(geoPackage);
MediaTable mediaTable = MediaTable.create("preview");
UserMappingTable userMappingTable = UserMappingTable
.create("features_" + mediaTable.getTableName());
ExtendedRelation relation = relatedTables.addMediaRelationship(
ContentsId.TABLE_NAME, mediaTable, userMappingTable);
MediaDao mediaDao = relatedTables.getMediaDao(relation);
UserMappingDao userMappingDao = relatedTables.getMappingDao(relation);
for (String featureTable : geoPackage.getFeatureTables()) {
long featureContentsId = contentsId.getOrCreateId(featureTable);
FeaturePreview preview = new FeaturePreview(geoPackage,
featureTable);
preview.setManual(true);
preview.setBufferPercentage(0.1);
BufferedImage previewImage = preview.draw();
byte[] previewBytes = ImageUtils.writeImageToBytes(previewImage,
ImageUtils.IMAGE_FORMAT_PNG);
MediaRow mediaRow = mediaDao.newRow();
mediaRow.setData(previewBytes);
mediaRow.setContentType("image/png");
long mediaRowId = mediaDao.create(mediaRow);
UserMappingRow userMappingRow = userMappingDao.newRow();
userMappingRow.setBaseId(featureContentsId);
userMappingRow.setRelatedId(mediaRowId);
userMappingDao.create(userMappingRow);
}
}
示例9
private static void insertRelatedTablesMediaPreviewExtensionRows(Activity activity,
GeoPackage geoPackage, RelatedTablesExtension relatedTables)
throws IOException {
ContentsIdExtension contentsId = new ContentsIdExtension(geoPackage);
MediaTable mediaTable = MediaTable.create("preview");
UserMappingTable userMappingTable = UserMappingTable
.create("features_" + mediaTable.getTableName());
ExtendedRelation relation = relatedTables.addMediaRelationship(
ContentsId.TABLE_NAME, mediaTable, userMappingTable);
MediaDao mediaDao = relatedTables.getMediaDao(relation);
UserMappingDao userMappingDao = relatedTables.getMappingDao(relation);
for (String featureTable : geoPackage.getFeatureTables()) {
long featureContentsId = contentsId.getOrCreateId(featureTable);
FeaturePreview preview = new FeaturePreview(activity, geoPackage,
featureTable);
try {
preview.setManual(true);
preview.setBufferPercentage(0.1);
Bitmap previewImage = preview.draw();
byte[] previewBytes = BitmapConverter.toBytes(previewImage,
Bitmap.CompressFormat.PNG);
MediaRow mediaRow = mediaDao.newRow();
mediaRow.setData(previewBytes);
mediaRow.setContentType("image/png");
long mediaRowId = mediaDao.create(mediaRow);
UserMappingRow userMappingRow = userMappingDao.newRow();
userMappingRow.setBaseId(featureContentsId);
userMappingRow.setRelatedId(mediaRowId);
userMappingDao.create(userMappingRow);
} finally {
preview.close();
}
}
}
示例10
/**
* Copy the Feature Style extensions for the table. Relies on
* {@link GeoPackageExtensions#copyRelatedTables(GeoPackageCore, String, String)}
* to be called first.
*
* @param geoPackage
* GeoPackage
* @param table
* table name
* @param newTable
* new table name
* @since 3.3.0
*/
public static void copyFeatureStyle(GeoPackageCore geoPackage, String table,
String newTable) {
try {
FeatureCoreStyleExtension featureStyleExtension = getFeatureStyleExtension(
geoPackage);
if (featureStyleExtension.hasRelationship(table)) {
Extensions extension = featureStyleExtension.get(
FeatureCoreStyleExtension.EXTENSION_NAME, table, null);
if (extension != null) {
extension.setTableName(newTable);
featureStyleExtension.getExtensionsDao().create(extension);
ContentsIdExtension contentsIdExtension = featureStyleExtension
.getContentsId();
Long contentsId = contentsIdExtension.getId(table);
Long newContentsId = contentsIdExtension.getId(newTable);
if (contentsId != null && newContentsId != null) {
if (featureStyleExtension
.hasTableStyleRelationship(table)) {
copyFeatureTableStyle(featureStyleExtension,
FeatureCoreStyleExtension.TABLE_MAPPING_TABLE_STYLE,
table, newTable, contentsId, newContentsId);
}
if (featureStyleExtension
.hasTableIconRelationship(table)) {
copyFeatureTableStyle(featureStyleExtension,
FeatureCoreStyleExtension.TABLE_MAPPING_TABLE_ICON,
table, newTable, contentsId, newContentsId);
}
}
}
}
} catch (Exception e) {
logger.log(Level.WARNING,
"Failed to create Feature Style for table: " + newTable
+ ", copied from table: " + table,
e);
}
}
示例11
/**
* Constructor
*
* @param geoPackage
* GeoPackage
* @param relatedTables
* related tables
*/
protected FeatureCoreStyleExtension(GeoPackageCore geoPackage,
RelatedTablesCoreExtension relatedTables) {
super(geoPackage);
this.relatedTables = relatedTables;
contentsId = new ContentsIdExtension(geoPackage);
}
示例12
private static void createContentsIdExtension(GeoPackage geoPackage) {
ContentsIdExtension contentsId = new ContentsIdExtension(geoPackage);
contentsId.createIds(ContentsDataType.FEATURES);
}
示例13
/**
* Get the contents id extension
*
* @return contents id extension
*/
public ContentsIdExtension getContentsId() {
return contentsId;
}
示例14
private static void createContentsIdExtension(GeoPackage geoPackage) {
ContentsIdExtension contentsId = new ContentsIdExtension(geoPackage);
contentsId.createIds(ContentsDataType.FEATURES);
}