You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2026/01/04 15:25:49 UTC
(commons-imaging) 18/43: Javadoc
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-imaging.git
commit cacda989c2164f5cd49db18cb5a6da7bf1b7a5f4
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sat Jan 3 10:37:18 2026 -0500
Javadoc
---
.../imaging/formats/jpeg/iptc/IptcBlock.java | 27 ++++
.../imaging/formats/jpeg/iptc/IptcRecord.java | 20 ++-
.../imaging/formats/jpeg/iptc/IptcTypes.java | 143 ++++++++++++++++++---
3 files changed, 171 insertions(+), 19 deletions(-)
diff --git a/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcBlock.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcBlock.java
index 2705ba52..7e3c677d 100644
--- a/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcBlock.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcBlock.java
@@ -30,24 +30,51 @@ public class IptcBlock {
private final byte[] blockNameBytes;
private final byte[] blockData;
+ /**
+ * Constructs a new IPTC block.
+ *
+ * @param blockType the block type.
+ * @param blockNameBytes the block name bytes.
+ * @param blockData the block data.
+ */
public IptcBlock(final int blockType, final byte[] blockNameBytes, final byte[] blockData) {
this.blockData = Objects.requireNonNull(blockData, "blockData");
this.blockNameBytes = Objects.requireNonNull(blockNameBytes, "blockNameBytes");
this.blockType = blockType;
}
+ /**
+ * Gets a copy of the block data.
+ *
+ * @return a copy of the block data bytes.
+ */
public byte[] getBlockData() {
return blockData.clone();
}
+ /**
+ * Gets a copy of the block name bytes.
+ *
+ * @return a copy of the block name bytes.
+ */
public byte[] getBlockNameBytes() {
return blockNameBytes.clone();
}
+ /**
+ * Gets the block type.
+ *
+ * @return the block type.
+ */
public int getBlockType() {
return blockType;
}
+ /**
+ * Checks if this is an IPTC data block.
+ *
+ * @return true if this is an IPTC data block, false otherwise.
+ */
public boolean isIptcBlock() {
return blockType == IptcConstants.IMAGE_RESOURCE_BLOCK_IPTC_DATA;
}
diff --git a/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcRecord.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcRecord.java
index 31d28466..eeb4c818 100644
--- a/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcRecord.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcRecord.java
@@ -18,23 +18,41 @@ package org.apache.commons.imaging.formats.jpeg.iptc;
import java.util.Comparator;
-/*
+/**
* Represents an IPTC record, a single key-value pair of Photoshop IPTC data.
*/
public class IptcRecord {
+ /** Comparator for sorting IPTC records by type. */
public static final Comparator<IptcRecord> COMPARATOR = Comparator.comparingInt(e -> e.iptcType.getType());
+ /** The IPTC type. */
public final IptcType iptcType;
private final String value;
+ /**
+ * Constructs a new IPTC record.
+ *
+ * @param iptcType the IPTC type.
+ * @param value the value.
+ */
public IptcRecord(final IptcType iptcType, final String value) {
this.iptcType = iptcType;
this.value = value;
}
+ /**
+ * Gets the IPTC type name.
+ *
+ * @return the IPTC type name.
+ */
public String getIptcTypeName() {
return iptcType.getName();
}
+ /**
+ * Gets the value.
+ *
+ * @return the value.
+ */
public String getValue() {
return value;
}
diff --git a/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcTypes.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcTypes.java
index 8decb060..9d61974d 100644
--- a/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcTypes.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcTypes.java
@@ -16,26 +16,131 @@
*/
package org.apache.commons.imaging.formats.jpeg.iptc;
+/**
+ * Enumeration of IPTC (International Press Telecommunications Council) metadata record types.
+ */
public enum IptcTypes implements IptcType {
- RECORD_VERSION(0, "Record Version"), OBJECT_TYPE_REFERENCE(3, "Object Type Reference"), OBJECT_ATTRIBUTE_REFERENCE(4, "Object Attribute Reference"),
- OBJECT_NAME(5, "Object Name"), EDIT_STATUS(7, "Edit Status"), EDITORIAL_UPDATE(8, "Editorial Update"), URGENCY(10, "Urgency"),
- SUBJECT_REFERENCE(12, "Subject Reference"), CATEGORY(15, "Category"), SUPPLEMENTAL_CATEGORY(20, "Supplemental Category"),
- FIXTURE_IDENTIFIER(22, "Fixture Identifier"), KEYWORDS(25, "Keywords"), CONTENT_LOCATION_CODE(26, "Content Location Code"),
- CONTENT_LOCATION_NAME(27, "Content Location Name"), RELEASE_DATE(30, "Release Date"), RELEASE_TIME(35, "Release Time"),
- EXPIRATION_DATE(37, "Expiration Date"), EXPIRATION_TIME(38, "Expiration Time"), SPECIAL_INSTRUCTIONS(40, "Special Instructions"),
- ACTION_ADVISED(42, "Action Advised"), REFERENCE_SERVICE(45, "Reference Service"), REFERENCE_DATE(47, "Reference Date"),
- REFERENCE_NUMBER(50, "Reference Number"), DATE_CREATED(55, "Date Created"), TIME_CREATED(60, "Time Created"),
- DIGITAL_CREATION_DATE(62, "Digital Creation Date"), DIGITAL_CREATION_TIME(63, "Digital Creation Time"), ORIGINATING_PROGRAM(65, "Originating Program"),
- PROGRAM_VERSION(70, "Program Version"), OBJECT_CYCLE(75, "Object Cycle"), BYLINE(80, "By-line"), BYLINE_TITLE(85, "By-line Title"), CITY(90, "City"),
- SUBLOCATION(92, "Sublocation"), PROVINCE_STATE(95, "Province/State"), COUNTRY_PRIMARY_LOCATION_CODE(100, "Country/Primary Location Code"),
- COUNTRY_PRIMARY_LOCATION_NAME(101, "Country/Primary Location Name"), ORIGINAL_TRANSMISSION_REFERENCE(103, "Original Transmission, Reference"),
- HEADLINE(105, "Headline"), CREDIT(110, "Credit"), SOURCE(115, "Source"), COPYRIGHT_NOTICE(116, "Copyright Notice"), CONTACT(118, "Contact"),
- CAPTION_ABSTRACT(120, "Caption/Abstract"), WRITER_EDITOR(122, "Writer/Editor"), RASTERIZED_CAPTION(125, "Rasterized Caption"), IMAGE_TYPE(130, "ImageType"),
- IMAGE_ORIENTATION(131, "Image Orientation"), LANGUAGE_IDENTIFIER(135, "Language Identifier"), AUDIO_TYPE(150, "Audio Type"),
- AUDIO_SAMPLING_RATE(151, "Audio Sampling Rate"), AUDIO_SAMPLING_RESOLUTION(152, "Audio Sampling Resolution"), AUDIO_DURATION(153, "Audio Duration"),
- AUDIO_OUTCUE(154, "Audio Outcue"), OBJECT_DATA_PREVIEW_FILE_FORMAT(200, "Object Data Preview, File Format"),
- OBJECT_DATA_PREVIEW_FILE_FORMAT_VERSION(201, "Object Data Preview, File Format Version"), OBJECT_DATA_PREVIEW_DATA(202, "Object Data Preview Data");
+ /** Record version type. */
+ RECORD_VERSION(0, "Record Version"),
+ /** Object type reference type. */
+ OBJECT_TYPE_REFERENCE(3, "Object Type Reference"),
+ /** Object attribute reference type. */
+ OBJECT_ATTRIBUTE_REFERENCE(4, "Object Attribute Reference"),
+ /** Object name type. */
+ OBJECT_NAME(5, "Object Name"),
+ /** Edit status type. */
+ EDIT_STATUS(7, "Edit Status"),
+ /** Editorial update type. */
+ EDITORIAL_UPDATE(8, "Editorial Update"),
+ /** Urgency type. */
+ URGENCY(10, "Urgency"),
+ /** Subject reference type. */
+ SUBJECT_REFERENCE(12, "Subject Reference"),
+ /** Category type. */
+ CATEGORY(15, "Category"),
+ /** Supplemental category type. */
+ SUPPLEMENTAL_CATEGORY(20, "Supplemental Category"),
+ /** Fixture identifier type. */
+ FIXTURE_IDENTIFIER(22, "Fixture Identifier"),
+ /** Keywords type. */
+ KEYWORDS(25, "Keywords"),
+ /** Content location code type. */
+ CONTENT_LOCATION_CODE(26, "Content Location Code"),
+ /** Content location name type. */
+ CONTENT_LOCATION_NAME(27, "Content Location Name"),
+ /** Release date type. */
+ RELEASE_DATE(30, "Release Date"),
+ /** Release time type. */
+ RELEASE_TIME(35, "Release Time"),
+ /** Expiration date type. */
+ EXPIRATION_DATE(37, "Expiration Date"),
+ /** Expiration time type. */
+ EXPIRATION_TIME(38, "Expiration Time"),
+ /** Special instructions type. */
+ SPECIAL_INSTRUCTIONS(40, "Special Instructions"),
+ /** Action advised type. */
+ ACTION_ADVISED(42, "Action Advised"),
+ /** Reference service type. */
+ REFERENCE_SERVICE(45, "Reference Service"),
+ /** Reference date type. */
+ REFERENCE_DATE(47, "Reference Date"),
+ /** Reference number type. */
+ REFERENCE_NUMBER(50, "Reference Number"),
+ /** Date created type. */
+ DATE_CREATED(55, "Date Created"),
+ /** Time created type. */
+ TIME_CREATED(60, "Time Created"),
+ /** Digital creation date type. */
+ DIGITAL_CREATION_DATE(62, "Digital Creation Date"),
+ /** Digital creation time type. */
+ DIGITAL_CREATION_TIME(63, "Digital Creation Time"),
+ /** Originating program type. */
+ ORIGINATING_PROGRAM(65, "Originating Program"),
+ /** Program version type. */
+ PROGRAM_VERSION(70, "Program Version"),
+ /** Object cycle type. */
+ OBJECT_CYCLE(75, "Object Cycle"),
+ /** By-line type. */
+ BYLINE(80, "By-line"),
+ /** By-line title type. */
+ BYLINE_TITLE(85, "By-line Title"),
+ /** City type. */
+ CITY(90, "City"),
+ /** Sublocation type. */
+ SUBLOCATION(92, "Sublocation"),
+ /** Province/State type. */
+ PROVINCE_STATE(95, "Province/State"),
+ /** Country/Primary location code type. */
+ COUNTRY_PRIMARY_LOCATION_CODE(100, "Country/Primary Location Code"),
+ /** Country/Primary location name type. */
+ COUNTRY_PRIMARY_LOCATION_NAME(101, "Country/Primary Location Name"),
+ /** Original transmission reference type. */
+ ORIGINAL_TRANSMISSION_REFERENCE(103, "Original Transmission, Reference"),
+ /** Headline type. */
+ HEADLINE(105, "Headline"),
+ /** Credit type. */
+ CREDIT(110, "Credit"),
+ /** Source type. */
+ SOURCE(115, "Source"),
+ /** Copyright notice type. */
+ COPYRIGHT_NOTICE(116, "Copyright Notice"),
+ /** Contact type. */
+ CONTACT(118, "Contact"),
+ /** Caption/Abstract type. */
+ CAPTION_ABSTRACT(120, "Caption/Abstract"),
+ /** Writer/Editor type. */
+ WRITER_EDITOR(122, "Writer/Editor"),
+ /** Rasterized caption type. */
+ RASTERIZED_CAPTION(125, "Rasterized Caption"),
+ /** Image type. */
+ IMAGE_TYPE(130, "ImageType"),
+ /** Image orientation type. */
+ IMAGE_ORIENTATION(131, "Image Orientation"),
+ /** Language identifier type. */
+ LANGUAGE_IDENTIFIER(135, "Language Identifier"),
+ /** Audio type. */
+ AUDIO_TYPE(150, "Audio Type"),
+ /** Audio sampling rate type. */
+ AUDIO_SAMPLING_RATE(151, "Audio Sampling Rate"),
+ /** Audio sampling resolution type. */
+ AUDIO_SAMPLING_RESOLUTION(152, "Audio Sampling Resolution"),
+ /** Audio duration type. */
+ AUDIO_DURATION(153, "Audio Duration"),
+ /** Audio outcue type. */
+ AUDIO_OUTCUE(154, "Audio Outcue"),
+ /** Object data preview file format type. */
+ OBJECT_DATA_PREVIEW_FILE_FORMAT(200, "Object Data Preview, File Format"),
+ /** Object data preview file format version type. */
+ OBJECT_DATA_PREVIEW_FILE_FORMAT_VERSION(201, "Object Data Preview, File Format Version"),
+ /** Object data preview data type. */
+ OBJECT_DATA_PREVIEW_DATA(202, "Object Data Preview Data");
+ /**
+ * Gets an unknown IPTC type for the specified type number.
+ *
+ * @param type the type number.
+ * @return an unknown IPTC type.
+ */
public static IptcType getUnknown(final int type) {
return new IptcType() {
@Override
@@ -55,8 +160,10 @@ public enum IptcTypes implements IptcType {
};
}
+ /** The IPTC type number. */
public final int type;
+ /** The IPTC type name. */
public final String name;
IptcTypes(final int type, final String name) {