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);

	}