com.qcloud.cos.internal.XmlResponsesSaxParser Maven / Gradle / Ivy
/*
* Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
* According to cos feature, we modify some class,comment, field name, etc.
*/
package com.qcloud.cos.internal;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import com.qcloud.cos.exception.CosClientException;
import com.qcloud.cos.exception.CosServiceException;
import com.qcloud.cos.exception.MultiObjectDeleteException.DeleteError;
import com.qcloud.cos.internal.cihandler.AIGameRecResponseHandler;
import com.qcloud.cos.internal.cihandler.AutoTranslationBlockResponseHandler;
import com.qcloud.cos.internal.cihandler.BatchJobResponseHandler;
import com.qcloud.cos.internal.cihandler.CIXmlResponsesSaxParser;
import com.qcloud.cos.internal.cihandler.DetectCarHandler;
import com.qcloud.cos.internal.cihandler.DetectFaceResponseHandler;
import com.qcloud.cos.internal.cihandler.FileProcessResponseHandler;
import com.qcloud.cos.internal.cihandler.GenerateQrcodeHandler;
import com.qcloud.cos.internal.cihandler.GetImageStyleHandler;
import com.qcloud.cos.internal.cihandler.MediaJobResponseHandler;
import com.qcloud.cos.internal.cihandler.ReportBadCaseHandler;
import com.qcloud.cos.internal.cihandler.SearchImageHandler;
import com.qcloud.cos.internal.cihandler.TriggerWorkflowListHandler;
import com.qcloud.cos.internal.cihandler.WebpageAuditingDescribeJobHandler;
import com.qcloud.cos.model.AbortIncompleteMultipartUpload;
import com.qcloud.cos.model.AccessControlList;
import com.qcloud.cos.model.Bucket;
import com.qcloud.cos.model.BucketCrossOriginConfiguration;
import com.qcloud.cos.model.BucketDomainConfiguration;
import com.qcloud.cos.model.BucketIntelligentTierConfiguration;
import com.qcloud.cos.model.BucketLifecycleConfiguration;
import com.qcloud.cos.model.BucketLifecycleConfiguration.NoncurrentVersionTransition;
import com.qcloud.cos.model.BucketLifecycleConfiguration.Rule;
import com.qcloud.cos.model.BucketLifecycleConfiguration.Transition;
import com.qcloud.cos.model.BucketLoggingConfiguration;
import com.qcloud.cos.model.BucketRefererConfiguration;
import com.qcloud.cos.model.BucketReplicationConfiguration;
import com.qcloud.cos.model.BucketTaggingConfiguration;
import com.qcloud.cos.model.BucketVersioningConfiguration;
import com.qcloud.cos.model.BucketWebsiteConfiguration;
import com.qcloud.cos.model.CORSRule;
import com.qcloud.cos.model.CORSRule.AllowedMethods;
import com.qcloud.cos.model.COSObjectSummary;
import com.qcloud.cos.model.COSVersionSummary;
import com.qcloud.cos.model.CompleteMultipartUploadResult;
import com.qcloud.cos.model.CopyObjectResult;
import com.qcloud.cos.model.DecompressionResult;
import com.qcloud.cos.model.DeleteObjectsResult.DeletedObject;
import com.qcloud.cos.model.DomainRule;
import com.qcloud.cos.model.GetBucketInventoryConfigurationResult;
import com.qcloud.cos.model.GetObjectTaggingResult;
import com.qcloud.cos.model.Grantee;
import com.qcloud.cos.model.GroupGrantee;
import com.qcloud.cos.model.InitiateMultipartUploadResult;
import com.qcloud.cos.model.ListBucketInventoryConfigurationsResult;
import com.qcloud.cos.model.ListJobsResult;
import com.qcloud.cos.model.MultipartUpload;
import com.qcloud.cos.model.MultipartUploadListing;
import com.qcloud.cos.model.ObjectListing;
import com.qcloud.cos.model.Owner;
import com.qcloud.cos.model.PartListing;
import com.qcloud.cos.model.PartSummary;
import com.qcloud.cos.model.Permission;
import com.qcloud.cos.model.RedirectRule;
import com.qcloud.cos.model.ReplicationDestinationConfig;
import com.qcloud.cos.model.ReplicationRule;
import com.qcloud.cos.model.RoutingRule;
import com.qcloud.cos.model.RoutingRuleCondition;
import com.qcloud.cos.model.Tag.LifecycleTagPredicate;
import com.qcloud.cos.model.Tag.Tag;
import com.qcloud.cos.model.TagSet;
import com.qcloud.cos.model.UinGrantee;
import com.qcloud.cos.model.VersionListing;
import com.qcloud.cos.model.bucketcertificate.BucketDomainCertificateParameters;
import com.qcloud.cos.model.bucketcertificate.BucketGetDomainCertificate;
import com.qcloud.cos.model.ciModel.auditing.AudioAuditingResponse;
import com.qcloud.cos.model.ciModel.auditing.AudioSectionInfo;
import com.qcloud.cos.model.ciModel.auditing.AuditingJobsDetail;
import com.qcloud.cos.model.ciModel.auditing.AudtingCommonInfo;
import com.qcloud.cos.model.ciModel.auditing.BatchImageAuditingResponse;
import com.qcloud.cos.model.ciModel.auditing.BatchImageJobDetail;
import com.qcloud.cos.model.ciModel.auditing.DocumentAuditingJobsDetail;
import com.qcloud.cos.model.ciModel.auditing.DocumentAuditingResponse;
import com.qcloud.cos.model.ciModel.auditing.DocumentResultInfo;
import com.qcloud.cos.model.ciModel.auditing.ImageAuditingResponse;
import com.qcloud.cos.model.ciModel.auditing.LanguageResult;
import com.qcloud.cos.model.ciModel.auditing.LibResult;
import com.qcloud.cos.model.ciModel.auditing.ListResult;
import com.qcloud.cos.model.ciModel.auditing.ObjectResults;
import com.qcloud.cos.model.ciModel.auditing.OcrResults;
import com.qcloud.cos.model.ciModel.auditing.SectionInfo;
import com.qcloud.cos.model.ciModel.auditing.SnapshotInfo;
import com.qcloud.cos.model.ciModel.auditing.TextAuditingResponse;
import com.qcloud.cos.model.ciModel.auditing.VideoAuditingResponse;
import com.qcloud.cos.model.ciModel.auditing.WebpageAuditingJobsDetail;
import com.qcloud.cos.model.ciModel.auditing.WebpageAuditingResponse;
import com.qcloud.cos.model.ciModel.bucket.DocBucketObject;
import com.qcloud.cos.model.ciModel.bucket.DocBucketResponse;
import com.qcloud.cos.model.ciModel.bucket.MediaBucketObject;
import com.qcloud.cos.model.ciModel.bucket.MediaBucketResponse;
import com.qcloud.cos.model.ciModel.common.MediaOutputObject;
import com.qcloud.cos.model.ciModel.image.ImageLabelResponse;
import com.qcloud.cos.model.ciModel.image.ImageLabelV2Response;
import com.qcloud.cos.model.ciModel.image.Label;
import com.qcloud.cos.model.ciModel.image.LabelV2;
import com.qcloud.cos.model.ciModel.image.LocationLabel;
import com.qcloud.cos.model.ciModel.job.DocJobDetail;
import com.qcloud.cos.model.ciModel.job.DocJobListResponse;
import com.qcloud.cos.model.ciModel.job.DocJobResponse;
import com.qcloud.cos.model.ciModel.job.DocProcessObject;
import com.qcloud.cos.model.ciModel.job.DocProcessPageInfo;
import com.qcloud.cos.model.ciModel.job.DocProcessResult;
import com.qcloud.cos.model.ciModel.job.ExtractDigitalWatermark;
import com.qcloud.cos.model.ciModel.job.Md5Info;
import com.qcloud.cos.model.ciModel.job.MediaAudioObject;
import com.qcloud.cos.model.ciModel.job.MediaConcatFragmentObject;
import com.qcloud.cos.model.ciModel.job.MediaConcatTemplateObject;
import com.qcloud.cos.model.ciModel.job.MediaContainerObject;
import com.qcloud.cos.model.ciModel.job.MediaDigitalWatermark;
import com.qcloud.cos.model.ciModel.job.MediaJobObject;
import com.qcloud.cos.model.ciModel.job.MediaJobOperation;
import com.qcloud.cos.model.ciModel.job.MediaJobResponse;
import com.qcloud.cos.model.ciModel.job.MediaListJobResponse;
import com.qcloud.cos.model.ciModel.job.MediaPicProcessTemplateObject;
import com.qcloud.cos.model.ciModel.job.MediaRemoveWaterMark;
import com.qcloud.cos.model.ciModel.job.MediaTimeIntervalObject;
import com.qcloud.cos.model.ciModel.job.MediaTransConfigObject;
import com.qcloud.cos.model.ciModel.job.MediaTranscodeVideoObject;
import com.qcloud.cos.model.ciModel.job.MediaVideoObject;
import com.qcloud.cos.model.ciModel.job.OutputFile;
import com.qcloud.cos.model.ciModel.job.ProcessResult;
import com.qcloud.cos.model.ciModel.job.VideoTargetRec;
import com.qcloud.cos.model.ciModel.mediaInfo.MediaFormat;
import com.qcloud.cos.model.ciModel.mediaInfo.MediaInfoAudio;
import com.qcloud.cos.model.ciModel.mediaInfo.MediaInfoResponse;
import com.qcloud.cos.model.ciModel.mediaInfo.MediaInfoStream;
import com.qcloud.cos.model.ciModel.mediaInfo.MediaInfoSubtitle;
import com.qcloud.cos.model.ciModel.mediaInfo.MediaInfoVideo;
import com.qcloud.cos.model.ciModel.persistence.CIObject;
import com.qcloud.cos.model.ciModel.persistence.CIUploadResult;
import com.qcloud.cos.model.ciModel.persistence.ImageInfo;
import com.qcloud.cos.model.ciModel.persistence.OriginalInfo;
import com.qcloud.cos.model.ciModel.persistence.ProcessResults;
import com.qcloud.cos.model.ciModel.queue.DocListQueueResponse;
import com.qcloud.cos.model.ciModel.queue.MediaListQueueResponse;
import com.qcloud.cos.model.ciModel.queue.MediaNotifyConfig;
import com.qcloud.cos.model.ciModel.queue.MediaQueueObject;
import com.qcloud.cos.model.ciModel.queue.MediaQueueResponse;
import com.qcloud.cos.model.ciModel.recognition.CodeLocation;
import com.qcloud.cos.model.ciModel.recognition.QRcodeInfo;
import com.qcloud.cos.model.ciModel.snapshot.SnapshotResponse;
import com.qcloud.cos.model.ciModel.template.MediaListTemplateResponse;
import com.qcloud.cos.model.ciModel.template.MediaSegmentObject;
import com.qcloud.cos.model.ciModel.template.MediaSnapshotObject;
import com.qcloud.cos.model.ciModel.template.MediaTemplateObject;
import com.qcloud.cos.model.ciModel.template.MediaTemplateResponse;
import com.qcloud.cos.model.ciModel.template.MediaTemplateTransTplObject;
import com.qcloud.cos.model.ciModel.template.MediaWaterMarkImage;
import com.qcloud.cos.model.ciModel.template.MediaWaterMarkText;
import com.qcloud.cos.model.ciModel.template.MediaWatermark;
import com.qcloud.cos.model.ciModel.template.SpriteSnapshotConfig;
import com.qcloud.cos.model.ciModel.workflow.MediaTasks;
import com.qcloud.cos.model.ciModel.workflow.MediaWorkflowDependency;
import com.qcloud.cos.model.ciModel.workflow.MediaWorkflowExecutionObject;
import com.qcloud.cos.model.ciModel.workflow.MediaWorkflowExecutionResponse;
import com.qcloud.cos.model.ciModel.workflow.MediaWorkflowExecutionsResponse;
import com.qcloud.cos.model.ciModel.workflow.MediaWorkflowInput;
import com.qcloud.cos.model.ciModel.workflow.MediaWorkflowListResponse;
import com.qcloud.cos.model.ciModel.workflow.MediaWorkflowNode;
import com.qcloud.cos.model.ciModel.workflow.MediaWorkflowObject;
import com.qcloud.cos.model.ciModel.workflow.MediaWorkflowResponse;
import com.qcloud.cos.model.inventory.InventoryConfiguration;
import com.qcloud.cos.model.inventory.InventoryCosBucketDestination;
import com.qcloud.cos.model.inventory.InventoryDestination;
import com.qcloud.cos.model.inventory.InventoryFilter;
import com.qcloud.cos.model.inventory.InventoryPrefixPredicate;
import com.qcloud.cos.model.inventory.InventorySchedule;
import com.qcloud.cos.model.inventory.ServerSideEncryptionCOS;
import com.qcloud.cos.model.lifecycle.LifecycleAndOperator;
import com.qcloud.cos.model.lifecycle.LifecycleFilter;
import com.qcloud.cos.model.lifecycle.LifecycleFilterPredicate;
import com.qcloud.cos.model.lifecycle.LifecyclePrefixPredicate;
import com.qcloud.cos.utils.DateUtils;
import com.qcloud.cos.utils.StringUtils;
import com.qcloud.cos.utils.UrlEncoderUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.DefaultHandler;
import org.xml.sax.helpers.XMLReaderFactory;
/**
* XML Sax parser to read XML documents returned by COS via the REST interface, converting these
* documents into objects.
*/
public class XmlResponsesSaxParser {
private static final Logger log = LoggerFactory.getLogger(XmlResponsesSaxParser.class);
private XMLReader xr = null;
private boolean sanitizeXmlDocument = true;
/**
* Constructs the XML SAX parser.
*
* @throws CosClientException
*/
public XmlResponsesSaxParser() throws CosClientException {
// Ensure we can load the XML Reader.
try {
xr = XMLReaderFactory.createXMLReader();
xr.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
xr.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
xr.setFeature("http://xml.org/sax/features/external-general-entities", false);
xr.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
} catch (SAXException e) {
throw new CosClientException("Couldn't initialize a SAX driver to create an XMLReader",
e);
}
}
/**
* Parses an XML document from an input stream using a document handler.
*
* @param handler the handler for the XML document
* @param inputStream an input stream containing the XML document to parse
*
* @throws IOException on error reading from the input stream (ie connection reset)
* @throws CosClientException on error with malformed XML, etc
*/
protected void parseXmlInputStream(DefaultHandler handler, InputStream inputStream)
throws IOException {
try {
if (log.isDebugEnabled()) {
log.debug("Parsing XML response document with handler: " + handler.getClass());
}
BufferedReader breader =
new BufferedReader(new InputStreamReader(inputStream, StringUtils.UTF8));
xr.setContentHandler(handler);
xr.setErrorHandler(handler);
xr.parse(new InputSource(breader));
} catch (IOException e) {
throw e;
} catch (Throwable t) {
try {
inputStream.close();
} catch (IOException e) {
if (log.isErrorEnabled()) {
log.error("Unable to close response InputStream up after XML parse failure", e);
}
}
throw new CosClientException(
"Failed to parse XML document with handler " + handler.getClass(), t);
}
}
protected InputStream sanitizeXmlDocument(DefaultHandler handler, InputStream inputStream)
throws IOException {
if (!sanitizeXmlDocument) {
// No sanitizing will be performed, return the original input stream unchanged.
return inputStream;
} else {
if (log.isDebugEnabled()) {
log.debug("Sanitizing XML document destined for handler " + handler.getClass());
}
InputStream sanitizedInputStream = null;
try {
/*
* Read object listing XML document from input stream provided into a string buffer,
* so we can replace troublesome characters before sending the document to the XML
* parser.
*/
StringBuilder listingDocBuffer = new StringBuilder();
BufferedReader br =
new BufferedReader(new InputStreamReader(inputStream, StringUtils.UTF8));
char[] buf = new char[8192];
int read = -1;
while ((read = br.read(buf)) != -1) {
listingDocBuffer.append(buf, 0, read);
}
br.close();
/*
* Replace any carriage return (\r) characters with explicit XML character entities,
* to prevent the SAX parser from misinterpreting 0x0D characters as 0x0A and being
* unable to parse the XML.
*/
String listingDoc = listingDocBuffer.toString().replaceAll("\r", "
");
sanitizedInputStream =
new ByteArrayInputStream(listingDoc.getBytes(StringUtils.UTF8));
} catch (IOException e) {
throw e;
} catch (Throwable t) {
try {
inputStream.close();
} catch (IOException e) {
if (log.isErrorEnabled()) {
log.error(
"Unable to close response InputStream after failure sanitizing XML document",
e);
}
}
throw new CosClientException("Failed to sanitize XML document destined for handler "
+ handler.getClass(), t);
}
return sanitizedInputStream;
}
}
/**
* Safely parses the specified string as an integer and returns the value. If a
* NumberFormatException occurs while parsing the integer, an error is logged and -1 is
* returned.
*
* @param s The string to parse and return as an integer.
*
* @return The integer value of the specified string, otherwise -1 if there were any problems
* parsing the string as an integer.
*/
private static int parseInt(String s) {
try {
return Integer.parseInt(s);
} catch (NumberFormatException nfe) {
log.error("Unable to parse integer value '" + s + "'", nfe);
}
return -1;
}
/**
* Safely parses the specified string as a long and returns the value. If a
* NumberFormatException occurs while parsing the long, an error is logged and -1 is returned.
*
* @param s The string to parse and return as a long.
*
* @return The long value of the specified string, otherwise -1 if there were any problems
* parsing the string as a long.
*/
private static long parseLong(String s) {
try {
return Long.parseLong(s);
} catch (NumberFormatException nfe) {
log.error("Unable to parse long value '" + s + "'", nfe);
}
return -1;
}
/**
* Checks if the specified string is empty or null and if so, returns null. Otherwise simply
* returns the string.
*
* @param s The string to check.
* @return Null if the specified string was null, or empty, otherwise returns the string the
* caller passed in.
*/
private static String checkForEmptyString(String s) {
if (s == null)
return null;
if (s.length() == 0)
return null;
return s;
}
/**
* Perform a url decode on the given value if specified. Return value by default;
*/
private static String decodeIfSpecified(String value, boolean decode) {
return decode ? UrlEncoderUtils.urlDecode(value) : value;
}
/**
* Parses a ListBucket response XML document from an input stream.
*
* @param inputStream XML data input stream.
* @return the XML handler object populated with data parsed from the XML stream.
* @throws CosClientException
*/
public ListBucketHandler parseListBucketObjectsResponse(InputStream inputStream,
final boolean shouldSDKDecodeResponse) throws IOException {
ListBucketHandler handler = new ListBucketHandler(shouldSDKDecodeResponse);
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
/**
* Parses a ListVersions response XML document from an input stream.
*
* @param inputStream XML data input stream.
* @param shouldSDKDecodeResponse
* @return the XML handler object populated with data parsed from the XML stream.
* @throws CosClientException
*/
public ListVersionsHandler parseListVersionsResponse(InputStream inputStream,
boolean shouldSDKDecodeResponse) throws IOException {
ListVersionsHandler handler = new ListVersionsHandler(shouldSDKDecodeResponse);
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public ReportBadCaseHandler parseReportBadCase(InputStream inputStream) throws IOException {
ReportBadCaseHandler handler = new ReportBadCaseHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
/**
* Parses a ListAllMyBuckets response XML document from an input stream.
*
* @param inputStream XML data input stream.
* @return the XML handler object populated with data parsed from the XML stream.
* @throws CosClientException
*/
public ListAllMyBucketsHandler parseListMyBucketsResponse(InputStream inputStream)
throws IOException {
ListAllMyBucketsHandler handler = new ListAllMyBucketsHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
//
/**
* Parses an AccessControlListHandler response XML document from an input stream.
*
* @param inputStream XML data input stream.
* @return the XML handler object populated with data parsed from the XML stream.
*
* @throws CosClientException
*/
public AccessControlListHandler parseAccessControlListResponse(InputStream inputStream)
throws IOException {
AccessControlListHandler handler = new AccessControlListHandler();
parseXmlInputStream(handler, inputStream);
return handler;
}
/**
* Parses an AccessControlListHandler response XML document from an input stream.
*
* @param inputStream XML data input stream.
* @return the XML handler object populated with data parsed from the XML stream.
*
* @throws CosClientException
*/
public ImagePersistenceHandler parseImagePersistenceResponse(InputStream inputStream)
throws IOException {
ImagePersistenceHandler handler = new ImagePersistenceHandler();
parseXmlInputStream(handler, inputStream);
return handler;
}
//
// /**
// * Parses a LoggingStatus response XML document for a bucket from an input stream.
// *
// * @param inputStream XML data input stream.
// * @return the XML handler object populated with data parsed from the XML stream.
// *
// * @throws CosClientException
// */
// public BucketLoggingConfigurationHandler parseLoggingStatusResponse(InputStream inputStream)
// throws IOException {
// BucketLoggingConfigurationHandler handler = new BucketLoggingConfigurationHandler();
// parseXmlInputStream(handler, inputStream);
// return handler;
// }
//
public BucketLifecycleConfigurationHandler parseBucketLifecycleConfigurationResponse(
InputStream inputStream) throws IOException {
BucketLifecycleConfigurationHandler handler = new BucketLifecycleConfigurationHandler();
parseXmlInputStream(handler, inputStream);
return handler;
}
public BucketCrossOriginConfigurationHandler parseBucketCrossOriginConfigurationResponse(
InputStream inputStream) throws IOException {
BucketCrossOriginConfigurationHandler handler = new BucketCrossOriginConfigurationHandler();
parseXmlInputStream(handler, inputStream);
return handler;
}
public BucketDomainConfigurationHandler parseBucketDomainConfigurationResponse(
InputStream inputStream) throws IOException {
BucketDomainConfigurationHandler handler = new BucketDomainConfigurationHandler();
parseXmlInputStream(handler, inputStream);
return handler;
}
public BucketDomainCertificateHandler parseBucketDomainCertificateResponse(
InputStream inputStream) throws IOException {
BucketDomainCertificateHandler handler = new BucketDomainCertificateHandler();
parseXmlInputStream(handler, inputStream);
return handler;
}
public BucketRefererConfigurationHandler parseBucketRefererConfigurationResponse(
InputStream inputStream) throws IOException {
BucketRefererConfigurationHandler handler = new BucketRefererConfigurationHandler();
parseXmlInputStream(handler, inputStream);
return handler;
}
public String parseBucketLocationResponse(InputStream inputStream) throws IOException {
BucketLocationHandler handler = new BucketLocationHandler();
parseXmlInputStream(handler, inputStream);
return handler.getLocation();
}
public BucketVersioningConfigurationHandler parseVersioningConfigurationResponse(
InputStream inputStream) throws IOException {
BucketVersioningConfigurationHandler handler = new BucketVersioningConfigurationHandler();
parseXmlInputStream(handler, inputStream);
return handler;
}
//
// public BucketWebsiteConfigurationHandler parseWebsiteConfigurationResponse(
// InputStream inputStream) throws IOException {
// BucketWebsiteConfigurationHandler handler = new BucketWebsiteConfigurationHandler();
// parseXmlInputStream(handler, inputStream);
// return handler;
// }
//
//
public BucketReplicationConfigurationHandler parseReplicationConfigurationResponse(
InputStream inputStream) throws IOException {
BucketReplicationConfigurationHandler handler = new BucketReplicationConfigurationHandler();
parseXmlInputStream(handler, inputStream);
return handler;
}
public BucketTaggingConfigurationHandler parseTaggingConfigurationResponse(InputStream inputStream)
throws IOException {
BucketTaggingConfigurationHandler handler = new BucketTaggingConfigurationHandler();
parseXmlInputStream(handler, inputStream);
return handler;
}
//
// public BucketTaggingConfigurationHandler parseTaggingConfigurationResponse(
// InputStream inputStream) throws IOException {
// BucketTaggingConfigurationHandler handler = new BucketTaggingConfigurationHandler();
// parseXmlInputStream(handler, inputStream);
// return handler;
// }
//
public DeleteObjectsHandler parseDeletedObjectsResult(InputStream inputStream)
throws IOException {
DeleteObjectsHandler handler = new DeleteObjectsHandler();
parseXmlInputStream(handler, inputStream);
return handler;
}
public CopyObjectResultHandler parseCopyObjectResponse(InputStream inputStream)
throws IOException {
CopyObjectResultHandler handler = new CopyObjectResultHandler();
parseXmlInputStream(handler, inputStream);
return handler;
}
public CompleteMultipartUploadHandler parseCompleteMultipartUploadResponse(
InputStream inputStream) throws IOException {
CompleteMultipartUploadHandler handler = new CompleteMultipartUploadHandler();
parseXmlInputStream(handler, inputStream);
return handler;
}
public InitiateMultipartUploadHandler parseInitiateMultipartUploadResponse(
InputStream inputStream) throws IOException {
InitiateMultipartUploadHandler handler = new InitiateMultipartUploadHandler();
parseXmlInputStream(handler, inputStream);
return handler;
}
public ListMultipartUploadsHandler parseListMultipartUploadsResponse(InputStream inputStream)
throws IOException {
ListMultipartUploadsHandler handler = new ListMultipartUploadsHandler();
parseXmlInputStream(handler, inputStream);
return handler;
}
public ListPartsHandler parseListPartsResponse(InputStream inputStream) throws IOException {
ListPartsHandler handler = new ListPartsHandler();
parseXmlInputStream(handler, inputStream);
return handler;
}
public BucketWebsiteConfigurationHandler parseWebsiteConfigurationResponse(InputStream inputStream)
throws IOException {
BucketWebsiteConfigurationHandler handler = new BucketWebsiteConfigurationHandler();
parseXmlInputStream(handler, inputStream);
return handler;
}
/**
* Parses a LoggingStatus response XML document for a bucket from an input
* stream.
*
* @param inputStream
* XML data input stream.
* @return the XML handler object populated with data parsed from the XML
* stream.
*
* @throws CosClientException
*/
public BucketLoggingConfigurationHandler parseLoggingStatusResponse(InputStream inputStream)
throws IOException {
BucketLoggingConfigurationHandler handler = new BucketLoggingConfigurationHandler();
parseXmlInputStream(handler, inputStream);
return handler;
}
public GetBucketInventoryConfigurationHandler parseGetBucketInventoryConfigurationResponse(InputStream inputStream)
throws IOException {
GetBucketInventoryConfigurationHandler handler = new GetBucketInventoryConfigurationHandler();
parseXmlInputStream(handler, inputStream);
return handler;
}
public ListBucketInventoryConfigurationsHandler parseBucketListInventoryConfigurationsResponse(InputStream inputStream)
throws IOException {
ListBucketInventoryConfigurationsHandler handler = new ListBucketInventoryConfigurationsHandler();
parseXmlInputStream(handler, inputStream);
return handler;
}
public GetObjectTaggingHandler parseObjectTaggingResponse(InputStream inputStream) throws IOException {
GetObjectTaggingHandler handler = new GetObjectTaggingHandler();
parseXmlInputStream(handler, inputStream);
return handler;
}
public GetBucketIntelligentTierConfigurationHandler parseBucketIntelligentTierConfigurationsResponse(InputStream inputStream)
throws IOException {
GetBucketIntelligentTierConfigurationHandler handler = new GetBucketIntelligentTierConfigurationHandler();
parseXmlInputStream(handler, inputStream);
return handler;
}
public ListQueueHandler parseListQueueResponse(InputStream inputStream) throws IOException {
ListQueueHandler handler = new ListQueueHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public DocListQueueHandler parseDocListQueueResponse(InputStream inputStream) throws IOException {
DocListQueueHandler handler = new DocListQueueHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public MediaQueueResponseHandler parseUpdateMediaQueueResponse(InputStream inputStream) throws IOException {
MediaQueueResponseHandler handler = new MediaQueueResponseHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public MediaTemplateHandler parseMediaTemplateResponse(InputStream inputStream) throws IOException {
MediaTemplateHandler handler = new MediaTemplateHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public SnapshotHandler parseSnapshotResponse(InputStream inputStream) throws IOException {
SnapshotHandler handler = new SnapshotHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public GenerateMediainfoHandler parseGenerateMediainfoResponse(InputStream inputStream) throws IOException {
GenerateMediainfoHandler handler = new GenerateMediainfoHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public WorkflowExecutionsHandler parseMediaWorkflowExecutionsResponse(InputStream inputStream) throws IOException {
WorkflowExecutionsHandler handler = new WorkflowExecutionsHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public MediaTemplatesHandler parseDescribeMediaTemplatesResponse(InputStream inputStream) throws IOException {
MediaTemplatesHandler handler = new MediaTemplatesHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public ListMediaBucketHandler parseListBucketResponse(InputStream inputStream) throws IOException {
ListMediaBucketHandler handler = new ListMediaBucketHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public ListDocBucketHandler parseDocListBucketResponse(InputStream inputStream) throws IOException {
ListDocBucketHandler handler = new ListDocBucketHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public WorkflowListHandler parseWorkflowListResponse(InputStream inputStream)
throws IOException {
WorkflowListHandler handler = new WorkflowListHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public WorkflowHandler parseWorkflowResponse(InputStream inputStream)
throws IOException {
WorkflowHandler handler = new WorkflowHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public WorkflowExecutionHandler parseWorkflowExecutionResponse(InputStream inputStream)
throws IOException {
WorkflowExecutionHandler handler = new WorkflowExecutionHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public MediaJobCreatHandler parseJobCreatResponse(InputStream inputStream) throws IOException {
MediaJobCreatHandler handler = new MediaJobCreatHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public MediaJobResponseHandler parseMediaJobRespones(InputStream inputStream) throws IOException {
MediaJobResponseHandler handler = new MediaJobResponseHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public BatchJobResponseHandler parseBatchJobResponse(InputStream inputStream) throws IOException {
BatchJobResponseHandler handler = new BatchJobResponseHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public DescribeMediaJobsHandler parseMediaJobsRespones(InputStream inputStream) throws IOException {
DescribeMediaJobsHandler handler = new DescribeMediaJobsHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public DocJobHandler parseDocJobResponse(InputStream inputStream) throws IOException {
DocJobHandler handler = new DocJobHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public DescribeDocProcessJobHandler parseDescribeDocJobResponse(InputStream inputStream) throws IOException {
DescribeDocProcessJobHandler handler = new DescribeDocProcessJobHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public DescribeDocProcessJobsHandler parseDocJobListResponse(InputStream inputStream) throws IOException {
DescribeDocProcessJobsHandler handler = new DescribeDocProcessJobsHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public ImageAuditingHandler parseImageAuditingResponse(InputStream inputStream) throws IOException {
ImageAuditingHandler handler = new ImageAuditingHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public CreateVideoAuditingJobHandler parseVideoAuditingJobResponse(InputStream inputStream) throws IOException {
CreateVideoAuditingJobHandler handler = new CreateVideoAuditingJobHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public CreateAudioAuditingJobHandler parseAudioAuditingJobResponse(InputStream inputStream) throws IOException {
CreateAudioAuditingJobHandler handler = new CreateAudioAuditingJobHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public DescribeVideoAuditingJobHandler parseDescribeVideoAuditingJobResponse(InputStream inputStream) throws IOException {
DescribeVideoAuditingJobHandler handler = new DescribeVideoAuditingJobHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public DescribeAudioAuditingJobHandler parseDescribeAudioAuditingJobResponse(InputStream inputStream) throws IOException {
DescribeAudioAuditingJobHandler handler = new DescribeAudioAuditingJobHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public ImageLabelHandler parseImageLabelResponse(InputStream inputStream) throws IOException {
ImageLabelHandler handler = new ImageLabelHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public ImageLabelV2Handler parseImageLabelV2Response(InputStream inputStream) throws IOException {
ImageLabelV2Handler handler = new ImageLabelV2Handler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public TextAuditingJobHandler parseTextAuditingResponse(InputStream inputStream) throws IOException {
TextAuditingJobHandler handler = new TextAuditingJobHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public TextAuditingDescribeJobHandler parseTextAuditingDescribeResponse(InputStream inputStream) throws IOException {
TextAuditingDescribeJobHandler handler = new TextAuditingDescribeJobHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public DocumentAuditingJobHandler parseDocumentAuditingResponse(InputStream inputStream) throws IOException {
DocumentAuditingJobHandler handler = new DocumentAuditingJobHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public DocumentAuditingDescribeJobHandler parseDocumentAuditingDescribeResponse(InputStream inputStream) throws IOException {
DocumentAuditingDescribeJobHandler handler = new DocumentAuditingDescribeJobHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public BatchImageAuditingHandler parseBatchImageAuditingResponse(InputStream inputStream) throws IOException {
BatchImageAuditingHandler handler = new BatchImageAuditingHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public WebpageAuditingJobHandler parseWebpageAuditingJobResponse(InputStream inputStream) throws IOException {
WebpageAuditingJobHandler handler = new WebpageAuditingJobHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public WebpageAuditingDescribeJobHandler parseDWebpageAuditingDescribeResponse(InputStream inputStream) throws IOException {
WebpageAuditingDescribeJobHandler handler = new WebpageAuditingDescribeJobHandler();
CIXmlResponsesSaxParser pxis = new CIXmlResponsesSaxParser();
pxis.parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public DescribeImageAuditingJobHandler parseImageAuditingDescribeResponse(InputStream inputStream) throws IOException {
DescribeImageAuditingJobHandler handler = new DescribeImageAuditingJobHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public DetectCarHandler parseDetectCarResponse(InputStream inputStream) throws IOException {
DetectCarHandler handler = new DetectCarHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public SearchImageHandler parseSearchImagesResponse(InputStream inputStream) throws IOException {
SearchImageHandler handler = new SearchImageHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public TriggerWorkflowListHandler parsetriggerWorkflowListResponse(InputStream inputStream) throws IOException {
TriggerWorkflowListHandler handler = new TriggerWorkflowListHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public GenerateQrcodeHandler parseGenerateQrcodeResponse(InputStream inputStream) throws IOException {
GenerateQrcodeHandler handler = new GenerateQrcodeHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public GenerateQrcodeHandler parseImageStyleResponse(InputStream inputStream) throws IOException {
GenerateQrcodeHandler handler = new GenerateQrcodeHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public GetImageStyleHandler parseGetImageStyleResponse(InputStream inputStream) throws IOException {
GetImageStyleHandler handler = new GetImageStyleHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public DecompressionHandler parseDecompressionResult(InputStream inputStream) throws IOException {
DecompressionHandler handler = new DecompressionHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public ListJobsResultHandler parseListJobsResult(InputStream inputStream) throws IOException {
ListJobsResultHandler handler = new ListJobsResultHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public FileProcessResponseHandler parseFileProcessResponse(InputStream inputStream) throws IOException {
FileProcessResponseHandler handler = new FileProcessResponseHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public AutoTranslationBlockResponseHandler parseAutoTranslationBlockResponse(InputStream inputStream) throws IOException {
AutoTranslationBlockResponseHandler handler = new AutoTranslationBlockResponseHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public DetectFaceResponseHandler parseDetectFaceResponse(InputStream inputStream) throws IOException {
DetectFaceResponseHandler handler = new DetectFaceResponseHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
public AIGameRecResponseHandler parseAIGameRecResponse(InputStream inputStream) throws IOException {
AIGameRecResponseHandler handler = new AIGameRecResponseHandler();
parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream));
return handler;
}
/**
* @param inputStream
*
* @return true if the bucket's is configured as Requester Pays, false if it is configured as
* Owner pays.
*
* @throws CosClientException
*/
// public RequestPaymentConfigurationHandler parseRequestPaymentConfigurationResponse(
// InputStream inputStream) throws IOException {
// RequestPaymentConfigurationHandler handler = new RequestPaymentConfigurationHandler();
// parseXmlInputStream(handler, inputStream);
// return handler;
// }
// ////////////
// Handlers //
// ////////////
/**
* Handler for ListBucket response XML documents. //
*/
public static class ListBucketHandler extends AbstractHandler {
private final ObjectListing objectListing = new ObjectListing();
private final boolean shouldSDKDecodeResponse;
private COSObjectSummary currentObject = null;
private Owner currentOwner = null;
private String lastKey = null;
public ListBucketHandler(final boolean shouldSDKDecodeResponse) {
this.shouldSDKDecodeResponse = shouldSDKDecodeResponse;
}
public ObjectListing getObjectListing() {
return objectListing;
}
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
if (in("ListBucketResult")) {
if (name.equals("Contents")) {
currentObject = new COSObjectSummary();
currentObject.setBucketName(objectListing.getBucketName());
}
}
else if (in("ListBucketResult", "Contents")) {
if (name.equals("Owner")) {
currentOwner = new Owner();
}
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (atTopLevel()) {
if (name.equals("ListBucketResult")) {
/*
* COS only includes the NextMarker XML element if the
* request specified a delimiter, but for consistency we'd
* like to always give easy access to the next marker if
* we're returning a list of results that's truncated.
*/
if (objectListing.isTruncated() && objectListing.getNextMarker() == null) {
String nextMarker = null;
if (!objectListing.getObjectSummaries().isEmpty()) {
nextMarker = objectListing.getObjectSummaries()
.get(objectListing.getObjectSummaries().size() - 1).getKey();
} else if (!objectListing.getCommonPrefixes().isEmpty()) {
nextMarker = objectListing.getCommonPrefixes()
.get(objectListing.getCommonPrefixes().size() - 1);
} else {
log.error("COS response indicates truncated results, "
+ "but contains no object summaries or " + "common prefixes.");
}
objectListing.setNextMarker(nextMarker);
}
}
}
else if (in("ListBucketResult")) {
if (name.equals("Name")) {
objectListing.setBucketName(getText());
if (log.isDebugEnabled()) {
log.debug("Examining listing for bucket: " + objectListing.getBucketName());
}
} else if (name.equals("Prefix")) {
objectListing.setPrefix(decodeIfSpecified(checkForEmptyString(getText()),
shouldSDKDecodeResponse));
} else if (name.equals("Marker")) {
objectListing.setMarker(decodeIfSpecified(checkForEmptyString(getText()),
shouldSDKDecodeResponse));
} else if (name.equals("NextMarker")) {
objectListing
.setNextMarker(decodeIfSpecified(getText(), shouldSDKDecodeResponse));
} else if (name.equals("MaxKeys")) {
objectListing.setMaxKeys(parseInt(getText()));
} else if (name.equals("Delimiter")) {
objectListing.setDelimiter(decodeIfSpecified(checkForEmptyString(getText()),
shouldSDKDecodeResponse));
} else if (name.equals("EncodingType")) {
objectListing.setEncodingType(
shouldSDKDecodeResponse ? null : checkForEmptyString(getText()));
} else if (name.equals("IsTruncated")) {
String isTruncatedStr = getText();
if (isTruncatedStr.startsWith("false")) {
objectListing.setTruncated(false);
} else if (isTruncatedStr.startsWith("true")) {
objectListing.setTruncated(true);
} else {
throw new IllegalStateException(
"Invalid value for IsTruncated field: " + isTruncatedStr);
}
} else if (name.equals("Contents")) {
objectListing.getObjectSummaries().add(currentObject);
currentObject = null;
}
}
else if (in("ListBucketResult", "Contents")) {
if (name.equals("Key")) {
lastKey = getText();
currentObject.setKey(decodeIfSpecified(lastKey, shouldSDKDecodeResponse));
} else if (name.equals("LastModified")) {
currentObject.setLastModified(DateUtils.parseISO8601Date(getText()));
} else if (name.equals("ETag")) {
currentObject.setETag(StringUtils.removeQuotes(getText()));
} else if (name.equals("Size")) {
currentObject.setSize(parseLong(getText()));
} else if (name.equals("StorageClass")) {
currentObject.setStorageClass(getText());
} else if (name.equals("Owner")) {
currentObject.setOwner(currentOwner);
currentOwner = null;
}
}
else if (in("ListBucketResult", "Contents", "Owner")) {
if (name.equals("ID")) {
currentOwner.setId(getText());
} else if (name.equals("DisplayName")) {
currentOwner.setDisplayName(getText());
}
}
else if (in("ListBucketResult", "CommonPrefixes")) {
if (name.equals("Prefix")) {
objectListing.getCommonPrefixes()
.add(decodeIfSpecified(getText(), shouldSDKDecodeResponse));
}
}
}
}
/**
* Handler for ListAllMyBuckets response XML documents. The document is parsed into
* {@link Bucket}s available via the {@link #getBuckets()} method.
*/
public static class ListAllMyBucketsHandler extends AbstractHandler {
private final List buckets = new ArrayList();
private Owner bucketsOwner = null;
private Bucket currentBucket = null;
/**
* @return the buckets listed in the document.
*/
public List getBuckets() {
return buckets;
}
/**
* @return the owner of the buckets.
*/
public Owner getOwner() {
return bucketsOwner;
}
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
if (in("ListAllMyBucketsResult")) {
if (name.equals("Owner")) {
bucketsOwner = new Owner();
}
} else if (in("ListAllMyBucketsResult", "Buckets")) {
if (name.equals("Bucket")) {
currentBucket = new Bucket();
currentBucket.setOwner(bucketsOwner);
}
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("ListAllMyBucketsResult", "Owner")) {
if (name.equals("ID")) {
bucketsOwner.setId(getText());
} else if (name.equals("DisplayName")) {
bucketsOwner.setDisplayName(getText());
}
}
else if (in("ListAllMyBucketsResult", "Buckets")) {
if (name.equals("Bucket")) {
buckets.add(currentBucket);
currentBucket = null;
}
}
else if (in("ListAllMyBucketsResult", "Buckets", "Bucket")) {
if (name.equals("Name")) {
currentBucket.setName(getText());
} else if (name.equals("CreationDate")) {
Date creationDate = DateUtils.parseISO8601Date(getText());
currentBucket.setCreationDate(creationDate);
} else if (name.equals("CreateDate")) {
Date creationDate = DateUtils.parseISO8601Date(getText());
currentBucket.setCreationDate(creationDate);
} else if (name.equals("Location")) {
currentBucket.setLocation(getText());
} else if (name.equals("BucketType")) {
currentBucket.setBucketType(getText());
} else if (name.equals("Type")) {
currentBucket.setType(getText());
}
}
}
}
public static class ImagePersistenceHandler extends AbstractHandler {
private final CIUploadResult ciUploadResult = new CIUploadResult();
private CIObject ciObject;
private QRcodeInfo qRcodeInfo;
public CIUploadResult getCiUploadResult() {
return ciUploadResult;
}
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
if (in("UploadResult")) {
if (name.equals("OriginalInfo")) {
ciUploadResult.setOriginalInfo(new OriginalInfo());
} else if (name.equals("ProcessResults")) {
ciUploadResult.setProcessResults(new ProcessResults());
}
} else if(in("UploadResult", "OriginalInfo")) {
if(name.equals("ImageInfo")) {
ciUploadResult.getOriginalInfo().setImageInfo(new ImageInfo());
}
} else if(in("UploadResult", "ProcessResults")) {
if(name.equals("Object")) {
ciObject = new CIObject();
}
} else if(in("UploadResult", "ProcessResults", "Object")) {
if(name.equals("QRcodeInfo")) {
qRcodeInfo = new QRcodeInfo();
}
} else if(in("UploadResult", "ProcessResults", "Object", "QRcodeInfo")) {
if(name.equals("CodeLocation")) {
qRcodeInfo.setCodeLocation(new CodeLocation());
}
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("UploadResult", "OriginalInfo")) {
OriginalInfo originalInfo = ciUploadResult.getOriginalInfo();
if (name.equals("Key")) {
originalInfo.setKey(getText());
} else if (name.equals("Location")) {
originalInfo.setLocation(getText());
} else if(name.equals("ETag")) {
originalInfo.setEtag(StringUtils.removeQuotes(getText()));
}
} else if (in("UploadResult", "OriginalInfo", "ImageInfo")) {
ImageInfo imageInfo = ciUploadResult.getOriginalInfo().getImageInfo();
if (name.equals("Format")) {
imageInfo.setFormat(getText());
} else if(name.equals("Width")) {
imageInfo.setWidth(Integer.parseInt(getText()));
} else if(name.equals("Height")) {
imageInfo.setHeight(Integer.parseInt(getText()));
} else if(name.equals("Quality")) {
imageInfo.setQuality(Integer.parseInt(getText()));
} else if(name.equals("Ave")) {
imageInfo.setAve(getText());
} else if(name.equals("Orientation")) {
imageInfo.setOrientation(Integer.parseInt(getText()));
}
} else if(in("UploadResult", "ProcessResults")) {
if(name.equals("Object")) {
if(ciUploadResult.getProcessResults().getObjectList() == null) {
ciUploadResult.getProcessResults().setObjectList(new LinkedList());
}
ciUploadResult.getProcessResults().getObjectList().add(ciObject);
}
} else if (in("UploadResult", "ProcessResults", "Object")) {
if (name.equals("Key")) {
ciObject.setKey(getText());
} else if(name.equals("Location")) {
ciObject.setLocation(getText());
} else if(name.equals("Format")) {
ciObject.setFormat(getText());
} else if(name.equals("Width")) {
ciObject.setWidth(Integer.parseInt(getText()));
} else if(name.equals("Height")) {
ciObject.setHeight(Integer.parseInt(getText()));
} else if(name.equals("Size")) {
ciObject.setSize(Integer.parseInt(getText()));
} else if(name.equals("Quality")) {
ciObject.setQuality(Integer.parseInt(getText()));
} else if(name.equals("ETag")) {
ciObject.setEtag(StringUtils.removeQuotes(getText()));
} else if(name.equals("CodeStatus")) {
ciObject.setCodeStatus(Integer.parseInt(getText()));
} else if(name.equals("QRcodeInfo")) {
if(ciObject.getQRcodeInfoList() == null) {
ciObject.setQRcodeInfoList(new LinkedList());
}
ciObject.getQRcodeInfoList().add(qRcodeInfo);
} else if(name.equals("WatermarkStatus")) {
ciObject.setWatermarkStatus(Integer.parseInt(getText()));
}
} else if(in("UploadResult", "ProcessResults", "Object", "QRcodeInfo")) {
if(name.equals("CodeUrl")) {
qRcodeInfo.setCodeUrl(getText());
}
} else if(in("UploadResult", "ProcessResults", "Object", "QRcodeInfo", "CodeLocation")) {
CodeLocation codeLocation = qRcodeInfo.getCodeLocation();
if(codeLocation.getPoints() == null) {
codeLocation.setPoints(new LinkedList());
}
if(name.equals("Point")) {
codeLocation.getPoints().add(getText());
}
}
}
}
/**
* Handler for AccessControlList response XML documents. The document is parsed into an
* {@link AccessControlList} object available via the {@link #getAccessControlList()} method.
*/
public static class AccessControlListHandler extends AbstractHandler {
private final AccessControlList accessControlList = new AccessControlList();
private Grantee currentGrantee = null;
private Permission currentPermission = null;
/**
* @return an object representing the ACL document.
*/
public AccessControlList getAccessControlList() {
return accessControlList;
}
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
if (in("AccessControlPolicy")) {
if (name.equals("Owner")) {
accessControlList.setOwner(new Owner());
}
}
else if (in("AccessControlPolicy", "AccessControlList", "Grant")) {
if (name.equals("Grantee")) {
String type = XmlResponsesSaxParser.findAttributeValue("xsi:type", attrs);
if ("Group".equals(type)) {
/*
* Nothing to do for GroupGrantees here since we
* can't construct an empty enum value early.
*/
} else if ("CanonicalUser".equals(type)) {
currentGrantee = new UinGrantee(null);
}
}
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("AccessControlPolicy", "Owner")) {
if (name.equals("ID")) {
accessControlList.getOwner().setId(getText());
} else if (name.equals("DisplayName")) {
accessControlList.getOwner().setDisplayName(getText());
}
}
else if (in("AccessControlPolicy", "AccessControlList")) {
if (name.equals("Grant")) {
accessControlList.grantPermission(currentGrantee, currentPermission);
currentGrantee = null;
currentPermission = null;
}
}
else if (in("AccessControlPolicy", "AccessControlList", "Grant")) {
if (name.equals("Permission")) {
currentPermission = Permission.parsePermission(getText());
}
}
else if (in("AccessControlPolicy", "AccessControlList", "Grant", "Grantee")) {
if (name.equals("ID")) {
currentGrantee.setIdentifier(getText());
} else if (name.equals("URI")) {
currentGrantee = GroupGrantee.parseGroupGrantee(getText());
} else if (name.equals("DisplayName")) {
((UinGrantee) currentGrantee).setDisplayName(getText());
}
}
}
}
/**
* Handler for LoggingStatus response XML documents for a bucket. The document is parsed into an
* {@link BucketLoggingConfiguration} object available via the
* {@link #getBucketLoggingConfiguration()} method.
*/
// public static class BucketLoggingConfigurationHandler extends AbstractHandler {
//
// private final BucketLoggingConfiguration bucketLoggingConfiguration =
// new BucketLoggingConfiguration();
//
// /**
// * @return
// * an object representing the bucket's LoggingStatus document.
// */
// public BucketLoggingConfiguration getBucketLoggingConfiguration() {
// return bucketLoggingConfiguration;
// }
//
// @Override
// protected void doStartElement(
// String uri,
// String name,
// String qName,
// Attributes attrs) {
//
// }
//
// @Override
// protected void doEndElement(String uri, String name, String qName) {
// if (in("BucketLoggingStatus", "LoggingEnabled")) {
// if (name.equals("TargetBucket")) {
// bucketLoggingConfiguration
// .setDestinationBucketName(getText());
//
// } else if (name.equals("TargetPrefix")) {
// bucketLoggingConfiguration
// .setLogFilePrefix(getText());
// }
// }
// }
// }
/**
* Handler for CreateBucketConfiguration response XML documents for a bucket. The document is
* parsed into a String representing the bucket's location, available via the
* {@link #getLocation()} method.
*/
public static class BucketLocationHandler extends AbstractHandler {
private String location = null;
/**
* @return the bucket's location.
*/
public String getLocation() {
return location;
}
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (atTopLevel()) {
if (name.equals("LocationConstraint")) {
String elementText = getText();
if (elementText.length() == 0) {
location = null;
} else {
location = elementText;
}
}
}
}
}
public static class CopyObjectResultHandler extends AbstractSSEHandler
implements ObjectExpirationResult, VIDResult {
// Data items for successful copy
private final CopyObjectResult result = new CopyObjectResult();
// Data items for failed copy
private String errorCode = null;
private String errorMessage = null;
private String errorRequestId = null;
private String errorHostId = null;
/** The crc64ecma value for this object */
private String crc64Ecma;
private boolean receivedErrorResponse = false;
@Override
public void setDateStr(String dateStr) {
result.setDateStr(dateStr);
}
@Override
public String getDateStr() {
return result.getDateStr();
}
@Override
public void setRequestId(String requestId) {
result.setRequestId(requestId);
}
@Override
public String getRequestId() {
return result.getRequestId();
}
@Override
protected ServerSideEncryptionResult sseResult() {
return result;
}
public Date getLastModified() {
return result.getLastModifiedDate();
}
public String getVersionId() {
return result.getVersionId();
}
public void setVersionId(String versionId) {
result.setVersionId(versionId);
}
public String getCrc64Ecma() {
return result.getCrc64Ecma();
}
public void setCrc64Ecma(String crc64Ecma) {
result.setCrc64Ecma(crc64Ecma);
}
@Override
public Date getExpirationTime() {
return result.getExpirationTime();
}
@Override
public void setExpirationTime(Date expirationTime) {
result.setExpirationTime(expirationTime);
}
@Override
public String getExpirationTimeRuleId() {
return result.getExpirationTimeRuleId();
}
@Override
public void setExpirationTimeRuleId(String expirationTimeRuleId) {
result.setExpirationTimeRuleId(expirationTimeRuleId);
}
public String getETag() {
return result.getETag();
}
public String getErrorCode() {
return errorCode;
}
public String getErrorHostId() {
return errorHostId;
}
public String getErrorMessage() {
return errorMessage;
}
public String getErrorRequestId() {
return errorRequestId;
}
public boolean isErrorResponse() {
return receivedErrorResponse;
}
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
if (atTopLevel()) {
if (name.equals("CopyObjectResult") || name.equals("CopyPartResult")) {
receivedErrorResponse = false;
} else if (name.equals("Error")) {
receivedErrorResponse = true;
}
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("CopyObjectResult") || in("CopyPartResult")) {
if (name.equals("LastModified")) {
// result.setLastModifiedDate(DateUtils.parseISO8601Date(getText()));
} else if (name.equals("ETag")) {
result.setETag(StringUtils.removeQuotes(getText()));
} else if (name.equals("VersionId")) {
result.setVersionId(getText());
} else if(name.equals("CRC64")) {
result.setCrc64Ecma(getText());
}
}
else if (in("Error")) {
if (name.equals("Code")) {
errorCode = getText();
} else if (name.equals("Message")) {
errorMessage = getText();
} else if (name.equals("RequestId")) {
errorRequestId = getText();
} else if (name.equals("HostId")) {
errorHostId = getText();
}
}
}
}
// /**
// * Handler for parsing RequestPaymentConfiguration XML response associated
// * with an Qcloud COS bucket. The XML response is parsed into a
// * RequestPaymentConfiguration
object.
// */
// public static class RequestPaymentConfigurationHandler extends AbstractHandler {
//
// private String payer = null;
//
// public RequestPaymentConfiguration getConfiguration(){
// return new RequestPaymentConfiguration(Payer.valueOf(payer));
// }
//
// @Override
// protected void doStartElement(
// String uri,
// String name,
// String qName,
// Attributes attrs) {
//
// }
//
// @Override
// protected void doEndElement(String uri, String name, String qName) {
// if (in("RequestPaymentConfiguration")) {
// if (name.equals("Payer")) {
// payer = getText();
// }
// }
// }
// }
//
/**
* Handler for ListVersionsResult XML document.
*/
public static class ListVersionsHandler extends AbstractHandler {
private final VersionListing versionListing = new VersionListing();
private final boolean shouldSDKDecodeResponse;
private COSVersionSummary currentVersionSummary;
private Owner currentOwner;
public ListVersionsHandler(final boolean shouldSDKDecodeResponse) {
this.shouldSDKDecodeResponse = shouldSDKDecodeResponse;
}
public VersionListing getListing() {
return versionListing;
}
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
if (in("ListVersionsResult")) {
if (name.equals("Version")) {
currentVersionSummary = new COSVersionSummary();
currentVersionSummary.setBucketName(versionListing.getBucketName());
} else if (name.equals("DeleteMarker")) {
currentVersionSummary = new COSVersionSummary();
currentVersionSummary.setBucketName(versionListing.getBucketName());
currentVersionSummary.setIsDeleteMarker(true);
}
}
else if (in("ListVersionsResult", "Version")
|| in("ListVersionsResult", "DeleteMarker")) {
if (name.equals("Owner")) {
currentOwner = new Owner();
}
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("ListVersionsResult")) {
if (name.equals("Name")) {
versionListing.setBucketName(getText());
} else if (name.equals("Prefix")) {
versionListing.setPrefix(decodeIfSpecified(checkForEmptyString(getText()),
shouldSDKDecodeResponse));
} else if (name.equals("KeyMarker")) {
versionListing.setKeyMarker(decodeIfSpecified(checkForEmptyString(getText()),
shouldSDKDecodeResponse));
} else if (name.equals("VersionIdMarker")) {
versionListing.setVersionIdMarker(checkForEmptyString(getText()));
} else if (name.equals("MaxKeys")) {
versionListing.setMaxKeys(Integer.parseInt(getText()));
} else if (name.equals("Delimiter")) {
versionListing.setDelimiter(decodeIfSpecified(checkForEmptyString(getText()),
shouldSDKDecodeResponse));
} else if (name.equals("EncodingType")) {
versionListing.setEncodingType(
shouldSDKDecodeResponse ? null : checkForEmptyString(getText()));
} else if (name.equals("NextKeyMarker")) {
versionListing.setNextKeyMarker(decodeIfSpecified(
checkForEmptyString(getText()), shouldSDKDecodeResponse));
} else if (name.equals("NextVersionIdMarker")) {
versionListing.setNextVersionIdMarker(getText());
} else if (name.equals("IsTruncated")) {
versionListing.setTruncated("true".equals(getText()));
} else if (name.equals("Version") || name.equals("DeleteMarker")) {
versionListing.getVersionSummaries().add(currentVersionSummary);
currentVersionSummary = null;
}
}
else if (in("ListVersionsResult", "CommonPrefixes")) {
if (name.equals("Prefix")) {
final String commonPrefix = checkForEmptyString(getText());
versionListing.getCommonPrefixes().add(shouldSDKDecodeResponse
? UrlEncoderUtils.urlDecode(commonPrefix) : commonPrefix);
}
}
else if (in("ListVersionsResult", "Version")
|| in("ListVersionsResult", "DeleteMarker")) {
if (name.equals("Key")) {
currentVersionSummary
.setKey(decodeIfSpecified(getText(), shouldSDKDecodeResponse));
} else if (name.equals("VersionId")) {
currentVersionSummary.setVersionId(getText());
} else if (name.equals("IsLatest")) {
currentVersionSummary.setIsLatest("true".equals(getText()));
} else if (name.equals("LastModified")) {
currentVersionSummary.setLastModified(DateUtils.parseISO8601Date(getText()));
} else if (name.equals("ETag")) {
currentVersionSummary.setETag(StringUtils.removeQuotes(getText()));
} else if (name.equals("Size")) {
currentVersionSummary.setSize(Long.parseLong(getText()));
} else if (name.equals("Owner")) {
currentVersionSummary.setOwner(currentOwner);
currentOwner = null;
} else if (name.equals("StorageClass")) {
currentVersionSummary.setStorageClass(getText());
}
}
else if (in("ListVersionsResult", "Version", "Owner")
|| in("ListVersionsResult", "DeleteMarker", "Owner")) {
if (name.equals("ID")) {
currentOwner.setId(getText());
} else if (name.equals("DisplayName")) {
currentOwner.setDisplayName(getText());
}
}
}
}
//
// public static class BucketWebsiteConfigurationHandler extends AbstractHandler {
//
// private final BucketWebsiteConfiguration configuration =
// new BucketWebsiteConfiguration(null);
//
// private RoutingRuleCondition currentCondition = null;
// private RedirectRule currentRedirectRule = null;
// private RoutingRule currentRoutingRule = null;
//
// public BucketWebsiteConfiguration getConfiguration() {
// return configuration;
// }
//
// @Override
// protected void doStartElement(
// String uri,
// String name,
// String qName,
// Attributes attrs) {
//
// if (in("WebsiteConfiguration")) {
// if (name.equals("RedirectAllRequestsTo")) {
// currentRedirectRule = new RedirectRule();
// }
// }
//
// else if (in("WebsiteConfiguration", "RoutingRules")) {
// if (name.equals("RoutingRule")) {
// currentRoutingRule = new RoutingRule();
// }
// }
//
// else if (in("WebsiteConfiguration", "RoutingRules", "RoutingRule")) {
// if (name.equals("Condition")) {
// currentCondition = new RoutingRuleCondition();
// } else if (name.equals("Redirect")) {
// currentRedirectRule = new RedirectRule();
// }
// }
// }
//
// @Override
// protected void doEndElement(String uri, String name, String qName) {
// if (in("WebsiteConfiguration")) {
// if (name.equals("RedirectAllRequestsTo")) {
// configuration.setRedirectAllRequestsTo(currentRedirectRule);
// currentRedirectRule = null;
// }
// }
//
// else if (in("WebsiteConfiguration", "IndexDocument")) {
// if (name.equals("Suffix")) {
// configuration.setIndexDocumentSuffix(getText());
// }
// }
//
// else if (in("WebsiteConfiguration", "ErrorDocument")) {
// if (name.equals("Key")) {
// configuration.setErrorDocument(getText());
// }
// }
//
// else if (in("WebsiteConfiguration", "RoutingRules")) {
// if (name.equals("RoutingRule")) {
// configuration.getRoutingRules().add(currentRoutingRule);
// currentRoutingRule = null;
// }
// }
//
// else if (in("WebsiteConfiguration", "RoutingRules", "RoutingRule")) {
// if (name.equals("Condition")) {
// currentRoutingRule.setCondition(currentCondition);
// currentCondition = null;
// } else if (name.equals("Redirect")) {
// currentRoutingRule.setRedirect(currentRedirectRule);
// currentRedirectRule = null;
// }
// }
//
// else if (in("WebsiteConfiguration", "RoutingRules", "RoutingRule", "Condition")) {
// if (name.equals("KeyPrefixEquals")) {
// currentCondition.setKeyPrefixEquals(getText());
// } else if (name.equals("HttpErrorCodeReturnedEquals")) {
// currentCondition.setHttpErrorCodeReturnedEquals(getText());
// }
// }
//
// else if (in("WebsiteConfiguration", "RedirectAllRequestsTo")
// || in("WebsiteConfiguration", "RoutingRules", "RoutingRule", "Redirect")) {
//
// if (name.equals("Protocol")) {
// currentRedirectRule.setProtocol(getText());
//
// } else if (name.equals("HostName")) {
// currentRedirectRule.setHostName(getText());
//
// } else if (name.equals("ReplaceKeyPrefixWith")) {
// currentRedirectRule.setReplaceKeyPrefixWith(getText());
//
// } else if (name.equals("ReplaceKeyWith")) {
// currentRedirectRule.setReplaceKeyWith(getText());
//
// } else if (name.equals("HttpRedirectCode")) {
// currentRedirectRule.setHttpRedirectCode(getText());
// }
// }
// }
// }
//
public static class BucketVersioningConfigurationHandler extends AbstractHandler {
private final BucketVersioningConfiguration configuration =
new BucketVersioningConfiguration();
public BucketVersioningConfiguration getConfiguration() {
return configuration;
}
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("VersioningConfiguration")) {
if (name.equals("Status")) {
configuration.setStatus(getText());
}
}
}
}
/*
*
* http://Example-Bucket.cn-north.myqcloud.com/Example-Object
* Example-Bucket Example-Object
* "3858f62230ac3c915f300c664312c11f-9"
*
* Or if an error occurred while completing:
*
* InternalError
We
* encountered an internal error. Please try again.
* 656c76696e6727732072657175657374
* Uuag1LuByRx9e6j5Onimru9pO4ZVKnJ2Qz7/C1NPcfTWAtRPfTaOFg==
*/
public static class CompleteMultipartUploadHandler extends AbstractSSEHandler
implements ObjectExpirationResult, VIDResult {
// Successful completion
private CompleteMultipartUploadResult result;
private CIUploadResult ciUploadResult = new CIUploadResult();
private OriginalInfo originalInfo;
private CIObject ciObject;
private QRcodeInfo qRcodeInfo;
// Error during completion
private CosServiceException cse;
private String traceId;
private String requestId;
private String errorCode;
/**
* @see com.qcloud.cos.model.CompleteMultipartUploadResult#getExpirationTime()
*/
@Override
public Date getExpirationTime() {
return result == null ? null : result.getExpirationTime();
}
/**
* @see com.qcloud.cos.model.CompleteMultipartUploadResult#setExpirationTime(java.util.Date)
*/
@Override
public void setExpirationTime(Date expirationTime) {
if (result != null) {
result.setExpirationTime(expirationTime);
}
}
/**
* @see com.qcloud.cos.model.CompleteMultipartUploadResult#getExpirationTimeRuleId()
*/
@Override
public String getExpirationTimeRuleId() {
return result == null ? null : result.getExpirationTimeRuleId();
}
/**
* @see com.qcloud.cos.model.CompleteMultipartUploadResult#setExpirationTimeRuleId(java.lang.String)
*/
@Override
public void setExpirationTimeRuleId(String expirationTimeRuleId) {
if (result != null) {
result.setExpirationTimeRuleId(expirationTimeRuleId);
}
}
@Override
public String getRequestId() {
return result == null ? null : result.getRequestId();
}
@Override
public void setRequestId(String requestId) {
if (result != null) {
result.setRequestId(requestId);
}
}
@Override
public String getDateStr() {
return result == null ? null : result.getDateStr();
}
@Override
public void setDateStr(String dateStr) {
if (result != null) {
result.setDateStr(dateStr);
}
}
public CompleteMultipartUploadResult getCompleteMultipartUploadResult() {
return result;
}
public CosServiceException getCOSException() {
return cse;
}
public CIUploadResult getCiUploadResult() {
return ciUploadResult;
}
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
if (atTopLevel()) {
if (name.equals("CompleteMultipartUploadResult")) {
result = new CompleteMultipartUploadResult();
originalInfo = new OriginalInfo();
ciUploadResult.setOriginalInfo(originalInfo);
}
} else if(in("CompleteMultipartUploadResult")) {
if(name.equals("ImageInfo")) {
ciUploadResult.getOriginalInfo().setImageInfo(new ImageInfo());
} else if (name.equals("ProcessResults")) {
ciUploadResult.setProcessResults(new ProcessResults());
}
} else if(in("CompleteMultipartUploadResult", "ProcessResults")) {
if(name.equals("Object")) {
ciObject = new CIObject();
}
} else if(in("CompleteMultipartUploadResult", "ProcessResults", "Object")) {
if(name.equals("QRcodeInfo")) {
qRcodeInfo = new QRcodeInfo();
}
} else if(in("CompleteMultipartUploadResult", "ProcessResults", "Object", "QRcodeInfo")) {
if(name.equals("CodeLocation")) {
qRcodeInfo.setCodeLocation(new CodeLocation());
}
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (atTopLevel()) {
if (name.equals("Error")) {
if (cse != null) {
cse.setErrorCode(errorCode);
cse.setRequestId(requestId);
cse.setTraceId(traceId);
// complete multipart upload return 200 and chunked body
cse.setStatusCode(200);
}
}
} else if (in("Error")) {
if (name.equals("Code")) {
errorCode = getText();
} else if (name.equals("Message")) {
cse = new CosServiceException(getText());
} else if (name.equals("RequestId")) {
requestId = getText();
} else if (name.equals("HostId")) {
traceId = getText();
}
} else if (in("CompleteMultipartUploadResult")) {
if (name.equals("Location")) {
result.setLocation(getText());
originalInfo.setLocation(getText());
} else if (name.equals("Bucket")) {
result.setBucketName(getText());
} else if (name.equals("Key")) {
result.setKey(getText());
originalInfo.setKey(getText());
} else if (name.equals("ETag")) {
result.setETag(StringUtils.removeQuotes(getText()));
originalInfo.setEtag(StringUtils.removeQuotes(getText()));
}
} else if (in("CompleteMultipartUploadResult", "ImageInfo")) {
ImageInfo imageInfo = ciUploadResult.getOriginalInfo().getImageInfo();
if (name.equals("Format")) {
imageInfo.setFormat(getText());
} else if(name.equals("Width")) {
imageInfo.setWidth(Integer.parseInt(getText()));
} else if(name.equals("Height")) {
imageInfo.setHeight(Integer.parseInt(getText()));
} else if(name.equals("Quality")) {
imageInfo.setQuality(Integer.parseInt(getText()));
} else if(name.equals("Ave")) {
imageInfo.setAve(getText());
} else if(name.equals("Orientation")) {
imageInfo.setOrientation(Integer.parseInt(getText()));
}
} else if(in("CompleteMultipartUploadResult", "ProcessResults")) {
if(name.equals("Object")) {
if(ciUploadResult.getProcessResults().getObjectList() == null) {
ciUploadResult.getProcessResults().setObjectList(new LinkedList());
}
ciUploadResult.getProcessResults().getObjectList().add(ciObject);
}
} else if (in("CompleteMultipartUploadResult", "ProcessResults", "Object")) {
if (name.equals("Key")) {
ciObject.setKey(getText());
} else if(name.equals("Location")) {
ciObject.setLocation(getText());
} else if(name.equals("Format")) {
ciObject.setFormat(getText());
} else if(name.equals("Width")) {
ciObject.setWidth(Integer.parseInt(getText()));
} else if(name.equals("Height")) {
ciObject.setHeight(Integer.parseInt(getText()));
} else if(name.equals("Size")) {
ciObject.setSize(Integer.parseInt(getText()));
} else if(name.equals("Quality")) {
ciObject.setQuality(Integer.parseInt(getText()));
} else if(name.equals("ETag")) {
ciObject.setEtag(StringUtils.removeQuotes(getText()));
} else if(name.equals("CodeStatus")) {
ciObject.setCodeStatus(Integer.parseInt(getText()));
} else if(name.equals("QRcodeInfo")) {
if(ciObject.getQRcodeInfoList() == null) {
ciObject.setQRcodeInfoList(new LinkedList());
}
ciObject.getQRcodeInfoList().add(qRcodeInfo);
} else if(name.equals("WatermarkStatus")) {
ciObject.setWatermarkStatus(Integer.parseInt(getText()));
}
} else if(in("CompleteMultipartUploadResult", "ProcessResults", "Object", "QRcodeInfo")) {
if(name.equals("CodeUrl")) {
qRcodeInfo.setCodeUrl(getText());
}
} else if(in("CompleteMultipartUploadResult", "ProcessResults", "Object",
"QRcodeInfo", "CodeLocation")) {
CodeLocation codeLocation = qRcodeInfo.getCodeLocation();
if(codeLocation.getPoints() == null) {
codeLocation.setPoints(new LinkedList());
}
if(name.equals("Point")) {
codeLocation.getPoints().add(getText());
}
}
}
@Override
protected ServerSideEncryptionResult sseResult() {
return result;
}
}
/*
*
* example-bucket example-object
* VXBsb2FkIElEIGZvciA2aWWpbmcncyBteS1tb3ZpZS5tMnRzIHVwbG9hZA
*
*/
public static class InitiateMultipartUploadHandler extends AbstractHandler {
private final InitiateMultipartUploadResult result = new InitiateMultipartUploadResult();
public InitiateMultipartUploadResult getInitiateMultipartUploadResult() {
return result;
}
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("InitiateMultipartUploadResult")) {
if (name.equals("Bucket")) {
result.setBucketName(getText());
} else if (name.equals("Key")) {
result.setKey(getText());
} else if (name.equals("UploadId")) {
result.setUploadId(getText());
}
}
}
}
public static class ListMultipartUploadsHandler extends AbstractHandler {
private final MultipartUploadListing result = new MultipartUploadListing();
private MultipartUpload currentMultipartUpload;
private Owner currentOwner;
public MultipartUploadListing getListMultipartUploadsResult() {
return result;
}
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
if (in("ListMultipartUploadsResult")) {
if (name.equals("Upload")) {
currentMultipartUpload = new MultipartUpload();
}
} else if (in("ListMultipartUploadsResult", "Upload")) {
if (name.equals("Owner") || name.equals("Initiator")) {
currentOwner = new Owner();
}
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("ListMultipartUploadsResult")) {
if (name.equals("Bucket")) {
result.setBucketName(getText());
} else if (name.equals("KeyMarker")) {
result.setKeyMarker(checkForEmptyString(getText()));
} else if (name.equals("Delimiter")) {
result.setDelimiter(checkForEmptyString(getText()));
} else if (name.equals("Prefix")) {
result.setPrefix(checkForEmptyString(getText()));
} else if (name.equals("UploadIdMarker")) {
result.setUploadIdMarker(checkForEmptyString(getText()));
} else if (name.equals("NextKeyMarker")) {
result.setNextKeyMarker(checkForEmptyString(getText()));
} else if (name.equals("NextUploadIdMarker")) {
result.setNextUploadIdMarker(checkForEmptyString(getText()));
} else if (name.equals("MaxUploads")) {
result.setMaxUploads(Integer.parseInt(getText()));
} else if (name.equals("EncodingType")) {
result.setEncodingType(checkForEmptyString(getText()));
} else if (name.equals("IsTruncated")) {
result.setTruncated(Boolean.parseBoolean(getText()));
} else if (name.equals("Upload")) {
result.getMultipartUploads().add(currentMultipartUpload);
currentMultipartUpload = null;
}
}
else if (in("ListMultipartUploadsResult", "CommonPrefixes")) {
if (name.equals("Prefix")) {
result.getCommonPrefixes().add(getText());
}
}
else if (in("ListMultipartUploadsResult", "Upload")) {
if (name.equals("Key")) {
currentMultipartUpload.setKey(getText());
} else if (name.equals("UploadId")) {
currentMultipartUpload.setUploadId(getText());
} else if (name.equals("Owner")) {
currentMultipartUpload.setOwner(currentOwner);
currentOwner = null;
} else if (name.equals("Initiator")) {
currentMultipartUpload.setInitiator(currentOwner);
currentOwner = null;
} else if (name.equals("Initiated")) {
currentMultipartUpload.setInitiated(DateUtils.parseISO8601Date(getText()));
}
}
else if (in("ListMultipartUploadsResult", "Upload", "Owner")
|| in("ListMultipartUploadsResult", "Upload", "Initiator")) {
if (name.equals("ID")) {
currentOwner.setId(checkForEmptyString(getText()));
} else if (name.equals("DisplayName")) {
currentOwner.setDisplayName(checkForEmptyString(getText()));
}
}
}
}
public static class ListPartsHandler extends AbstractHandler {
private final PartListing result = new PartListing();
private PartSummary currentPart;
private Owner currentOwner;
public PartListing getListPartsResult() {
return result;
}
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
if (in("ListPartsResult")) {
if (name.equals("Part")) {
currentPart = new PartSummary();
} else if (name.equals("Owner") || name.equals("Initiator")) {
currentOwner = new Owner();
}
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("ListPartsResult")) {
if (name.equals("Bucket")) {
result.setBucketName(getText());
} else if (name.equals("Key")) {
result.setKey(getText());
} else if (name.equals("UploadId")) {
result.setUploadId(getText());
} else if (name.equals("Owner")) {
result.setOwner(currentOwner);
currentOwner = null;
} else if (name.equals("Initiator")) {
result.setInitiator(currentOwner);
currentOwner = null;
} else if (name.equals("StorageClass")) {
result.setStorageClass(getText());
} else if (name.equals("PartNumberMarker")) {
result.setPartNumberMarker(parseInteger(getText()));
} else if (name.equals("NextPartNumberMarker")) {
result.setNextPartNumberMarker(parseInteger(getText()));
} else if (name.equals("MaxParts")) {
result.setMaxParts(parseInteger(getText()));
} else if (name.equals("EncodingType")) {
result.setEncodingType(checkForEmptyString(getText()));
} else if (name.equals("IsTruncated")) {
result.setTruncated(Boolean.parseBoolean(getText()));
} else if (name.equals("Part")) {
result.getParts().add(currentPart);
currentPart = null;
}
}
else if (in("ListPartsResult", "Part")) {
if (name.equals("PartNumber")) {
currentPart.setPartNumber(Integer.parseInt(getText()));
} else if (name.equals("LastModified")) {
currentPart.setLastModified(DateUtils.parseISO8601Date(getText()));
} else if (name.equals("ETag")) {
currentPart.setETag(StringUtils.removeQuotes(getText()));
} else if (name.equals("Size")) {
currentPart.setSize(Long.parseLong(getText()));
}
}
else if (in("ListPartsResult", "Owner") || in("ListPartsResult", "Initiator")) {
if (name.equals("ID")) {
currentOwner.setId(checkForEmptyString(getText()));
} else if (name.equals("DisplayName")) {
currentOwner.setDisplayName(checkForEmptyString(getText()));
}
}
}
private Integer parseInteger(String text) {
text = checkForEmptyString(getText());
if (text == null)
return null;
return Integer.parseInt(text);
}
}
public static class BucketWebsiteConfigurationHandler extends AbstractHandler {
private final BucketWebsiteConfiguration configuration =
new BucketWebsiteConfiguration(null);
private RoutingRuleCondition currentCondition = null;
private RedirectRule currentRedirectRule = null;
private RoutingRule currentRoutingRule = null;
public BucketWebsiteConfiguration getConfiguration() {
return configuration;
}
@Override
protected void doStartElement(
String uri,
String name,
String qName,
Attributes attrs) {
if (in("WebsiteConfiguration")) {
if (name.equals("RedirectAllRequestsTo")) {
currentRedirectRule = new RedirectRule();
}
}
else if (in("WebsiteConfiguration", "RoutingRules")) {
if (name.equals("RoutingRule")) {
currentRoutingRule = new RoutingRule();
}
}
else if (in("WebsiteConfiguration", "RoutingRules", "RoutingRule")) {
if (name.equals("Condition")) {
currentCondition = new RoutingRuleCondition();
} else if (name.equals("Redirect")) {
currentRedirectRule = new RedirectRule();
}
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("WebsiteConfiguration")) {
if (name.equals("RedirectAllRequestsTo")) {
configuration.setRedirectAllRequestsTo(currentRedirectRule);
currentRedirectRule = null;
}
}
else if (in("WebsiteConfiguration", "IndexDocument")) {
if (name.equals("Suffix")) {
configuration.setIndexDocumentSuffix(getText());
}
}
else if (in("WebsiteConfiguration", "ErrorDocument")) {
if (name.equals("Key")) {
configuration.setErrorDocument(getText());
}
}
else if (in("WebsiteConfiguration", "RoutingRules")) {
if (name.equals("RoutingRule")) {
configuration.getRoutingRules().add(currentRoutingRule);
currentRoutingRule = null;
}
}
else if (in("WebsiteConfiguration", "RoutingRules", "RoutingRule")) {
if (name.equals("Condition")) {
currentRoutingRule.setCondition(currentCondition);
currentCondition = null;
} else if (name.equals("Redirect")) {
currentRoutingRule.setRedirect(currentRedirectRule);
currentRedirectRule = null;
}
}
else if (in("WebsiteConfiguration", "RoutingRules", "RoutingRule", "Condition")) {
if (name.equals("KeyPrefixEquals")) {
currentCondition.setKeyPrefixEquals(getText());
} else if (name.equals("HttpErrorCodeReturnedEquals")) {
currentCondition.setHttpErrorCodeReturnedEquals(getText());
}
}
else if (in("WebsiteConfiguration", "RedirectAllRequestsTo")
|| in("WebsiteConfiguration", "RoutingRules", "RoutingRule", "Redirect")) {
if (name.equals("Protocol")) {
currentRedirectRule.setProtocol(getText());
} else if (name.equals("HostName")) {
currentRedirectRule.setHostName(getText());
} else if (name.equals("ReplaceKeyPrefixWith")) {
currentRedirectRule.setReplaceKeyPrefixWith(getText());
} else if (name.equals("ReplaceKeyWith")) {
currentRedirectRule.setReplaceKeyWith(getText());
} else if (name.equals("HttpRedirectCode")) {
currentRedirectRule.setHttpRedirectCode(getText());
}
}
}
}
public static class BucketReplicationConfigurationHandler extends AbstractHandler {
private final BucketReplicationConfiguration bucketReplicationConfiguration =
new BucketReplicationConfiguration();
private ReplicationRule currentRule;
private ReplicationDestinationConfig destinationConfig;
private static final String REPLICATION_CONFIG = "ReplicationConfiguration";
private static final String ROLE = "Role";
private static final String RULE = "Rule";
private static final String DESTINATION = "Destination";
private static final String ID = "ID";
private static final String PREFIX = "Prefix";
private static final String STATUS = "Status";
private static final String BUCKET = "Bucket";
private static final String STORAGECLASS = "StorageClass";
public BucketReplicationConfiguration getConfiguration() {
return bucketReplicationConfiguration;
}
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
if (in(REPLICATION_CONFIG)) {
if (name.equals(RULE)) {
currentRule = new ReplicationRule();
}
} else if (in(REPLICATION_CONFIG, RULE)) {
if (name.equals(DESTINATION)) {
destinationConfig = new ReplicationDestinationConfig();
}
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in(REPLICATION_CONFIG)) {
if (name.equals(RULE)) {
bucketReplicationConfiguration.addRule(currentRule);
currentRule = null;
destinationConfig = null;
} else if (name.equals(ROLE)) {
bucketReplicationConfiguration.setRoleName(getText());
}
} else if (in(REPLICATION_CONFIG, RULE)) {
if (name.equals(ID)) {
currentRule.setID(getText());
} else if (name.equals(PREFIX)) {
currentRule.setPrefix(getText());
} else {
if (name.equals(STATUS)) {
currentRule.setStatus(getText());
} else if (name.equals(DESTINATION)) {
currentRule.setDestinationConfig(destinationConfig);
}
}
} else if (in(REPLICATION_CONFIG, RULE, DESTINATION)) {
if (name.equals(BUCKET)) {
destinationConfig.setBucketQCS(getText());
} else if (name.equals(STORAGECLASS)) {
destinationConfig.setStorageClass(getText());
}
}
}
}
//
// public static class BucketTaggingConfigurationHandler extends AbstractHandler {
//
// private final BucketTaggingConfiguration configuration =
// new BucketTaggingConfiguration();
//
// private Map currentTagSet;
// private String currentTagKey;
// private String currentTagValue;
//
// public BucketTaggingConfiguration getConfiguration() {
// return configuration;
// }
//
// @Override
// protected void doStartElement(
// String uri,
// String name,
// String qName,
// Attributes attrs) {
//
// if (in("Tagging")) {
// if (name.equals("TagSet")) {
// currentTagSet = new HashMap();
// }
// }
// }
//
// @Override
// protected void doEndElement(String uri, String name, String qName) {
// if (in("Tagging")) {
// if (name.equals("TagSet")) {
// configuration.getAllTagSets()
// .add(new TagSet(currentTagSet));
// currentTagSet = null;
// }
// }
//
// else if (in("Tagging", "TagSet")) {
// if (name.equals("Tag")) {
// if (currentTagKey != null && currentTagValue != null) {
// currentTagSet.put(currentTagKey, currentTagValue);
// }
// currentTagKey = null;
// currentTagValue = null;
// }
// }
//
// else if (in("Tagging", "TagSet", "Tag")) {
// if (name.equals("Key")) {
// currentTagKey = getText();
// } else if (name.equals("Value")) {
// currentTagValue = getText();
// }
// }
// }
// }
public static class DeleteObjectsHandler extends AbstractHandler {
private final DeleteObjectsResponse response = new DeleteObjectsResponse();
private DeletedObject currentDeletedObject = null;
private DeleteError currentError = null;
public DeleteObjectsResponse getDeleteObjectResult() {
return response;
}
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
if (in("DeleteResult")) {
if (name.equals("Deleted")) {
currentDeletedObject = new DeletedObject();
} else if (name.equals("Error")) {
currentError = new DeleteError();
}
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("DeleteResult")) {
if (name.equals("Deleted")) {
response.getDeletedObjects().add(currentDeletedObject);
currentDeletedObject = null;
} else if (name.equals("Error")) {
response.getErrors().add(currentError);
currentError = null;
}
}
else if (in("DeleteResult", "Deleted")) {
if (name.equals("Key")) {
currentDeletedObject.setKey(getText());
} else if (name.equals("VersionId")) {
currentDeletedObject.setVersionId(getText());
} else if (name.equals("DeleteMarker")) {
currentDeletedObject.setDeleteMarker(getText().equals("true"));
} else if (name.equals("DeleteMarkerVersionId")) {
currentDeletedObject.setDeleteMarkerVersionId(getText());
}
}
else if (in("DeleteResult", "Error")) {
if (name.equals("Key")) {
currentError.setKey(getText());
} else if (name.equals("VersionId")) {
currentError.setVersionId(getText());
} else if (name.equals("Code")) {
currentError.setCode(getText());
} else if (name.equals("Message")) {
currentError.setMessage(getText());
}
}
}
}
/**
* logs-rule logs/
* Enabled 30
* STANDARD_IA 90
* ARCHIVE
* 365
* 7
* STANDARD_IA
* 14
* ARCHIVE
* 365
* image-rule image/
* Enabled 2012-12-31T00:00:00.000Z
* ARCHIVE
* 2020-12-31T00:00:00.000Z
*
*/
public static class BucketLifecycleConfigurationHandler extends AbstractHandler {
private final BucketLifecycleConfiguration configuration =
new BucketLifecycleConfiguration(new ArrayList());
private Rule currentRule;
private Transition currentTransition;
private NoncurrentVersionTransition currentNcvTransition;
private AbortIncompleteMultipartUpload abortIncompleteMultipartUpload;
private LifecycleFilter currentFilter;
private List andOperandsList;
private String currentTagKey;
private String currentTagValue;
public BucketLifecycleConfiguration getConfiguration() {
return configuration;
}
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
if (in("LifecycleConfiguration")) {
if (name.equals("Rule")) {
currentRule = new Rule();
}
} else if (in("LifecycleConfiguration", "Rule")) {
if (name.equals("Transition")) {
currentTransition = new Transition();
} else if (name.equals("NoncurrentVersionTransition")) {
currentNcvTransition = new NoncurrentVersionTransition();
} else if (name.equals("AbortIncompleteMultipartUpload")) {
abortIncompleteMultipartUpload = new AbortIncompleteMultipartUpload();
} else if (name.equals("Filter")) {
currentFilter = new LifecycleFilter();
}
} else if (in("LifecycleConfiguration", "Rule", "Filter")) {
if (name.equals("And")) {
andOperandsList = new ArrayList();
}
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("LifecycleConfiguration")) {
if (name.equals("Rule")) {
configuration.getRules().add(currentRule);
currentRule = null;
}
}
else if (in("LifecycleConfiguration", "Rule")) {
if (name.equals("ID")) {
currentRule.setId(getText());
} else if (name.equals("Status")) {
currentRule.setStatus(getText());
} else if (name.equals("Transition")) {
currentRule.addTransition(currentTransition);
currentTransition = null;
} else if (name.equals("NoncurrentVersionTransition")) {
currentRule.addNoncurrentVersionTransition(currentNcvTransition);
currentNcvTransition = null;
} else if (name.equals("AbortIncompleteMultipartUpload")) {
currentRule.setAbortIncompleteMultipartUpload(abortIncompleteMultipartUpload);
abortIncompleteMultipartUpload = null;
} else if (name.equals("Filter")) {
currentRule.setFilter(currentFilter);
currentFilter = null;
}
}
else if (in("LifecycleConfiguration", "Rule", "Expiration")) {
if (name.equals("Date")) {
currentRule.setExpirationDate(DateUtils.parseISO8601Date(getText()));
} else if (name.equals("Days")) {
currentRule.setExpirationInDays(Integer.parseInt(getText()));
} else if (name.equals("ExpiredObjectDeleteMarker")) {
if ("true".equals(getText())) {
currentRule.setExpiredObjectDeleteMarker(true);
}
}
}
else if (in("LifecycleConfiguration", "Rule", "Transition")) {
if (name.equals("StorageClass")) {
currentTransition.setStorageClass(getText());
} else if (name.equals("Date")) {
currentTransition.setDate(DateUtils.parseISO8601Date(getText()));
} else if (name.equals("Days")) {
currentTransition.setDays(Integer.parseInt(getText()));
}
}
else if (in("LifecycleConfiguration", "Rule", "NoncurrentVersionExpiration")) {
if (name.equals("NoncurrentDays")) {
currentRule.setNoncurrentVersionExpirationInDays(Integer.parseInt(getText()));
}
}
else if (in("LifecycleConfiguration", "Rule", "NoncurrentVersionTransition")) {
if (name.equals("StorageClass")) {
currentNcvTransition.setStorageClass(getText());
} else if (name.equals("NoncurrentDays")) {
currentNcvTransition.setDays(Integer.parseInt(getText()));
}
}
else if (in("LifecycleConfiguration", "Rule", "AbortIncompleteMultipartUpload")) {
if (name.equals("DaysAfterInitiation")) {
abortIncompleteMultipartUpload
.setDaysAfterInitiation(Integer.parseInt(getText()));
}
}
else if (in("LifecycleConfiguration", "Rule", "Filter")) {
if (name.equals("Prefix")) {
currentFilter.setPredicate(new LifecyclePrefixPredicate(getText()));
} else if (name.equals("Tag")) {
currentFilter.setPredicate(
new LifecycleTagPredicate(new Tag(currentTagKey, currentTagValue)));
currentTagKey = null;
currentTagValue = null;
} else if (name.equals("And")) {
currentFilter.setPredicate(new LifecycleAndOperator(andOperandsList));
andOperandsList = null;
}
}
else if (in("LifecycleConfiguration", "Rule", "Filter", "Tag")) {
if (name.equals("Key")) {
currentTagKey = getText();
} else if (name.equals("Value")) {
currentTagValue = getText();
}
}
else if (in("LifecycleConfiguration", "Rule", "Filter", "And")) {
if (name.equals("Prefix")) {
andOperandsList.add(new LifecyclePrefixPredicate(getText()));
} else if (name.equals("Tag")) {
andOperandsList.add(
new LifecycleTagPredicate(new Tag(currentTagKey, currentTagValue)));
currentTagKey = null;
currentTagValue = null;
}
}
else if (in("LifecycleConfiguration", "Rule", "Filter", "And", "Tag")) {
if (name.equals("Key")) {
currentTagKey = getText();
} else if (name.equals("Value")) {
currentTagValue = getText();
}
}
}
}
public static class BucketCrossOriginConfigurationHandler extends AbstractHandler {
private final BucketCrossOriginConfiguration configuration =
new BucketCrossOriginConfiguration(new ArrayList());
private CORSRule currentRule;
private List allowedMethods = null;
private List allowedOrigins = null;
private List exposedHeaders = null;
private List allowedHeaders = null;
public BucketCrossOriginConfiguration getConfiguration() {
return configuration;
}
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
if (in("CORSConfiguration")) {
if (name.equals("CORSRule")) {
currentRule = new CORSRule();
}
} else if (in("CORSConfiguration", "CORSRule")) {
if (name.equals("AllowedOrigin")) {
if (allowedOrigins == null) {
allowedOrigins = new ArrayList();
}
} else if (name.equals("AllowedMethod")) {
if (allowedMethods == null) {
allowedMethods = new ArrayList();
}
} else if (name.equals("ExposeHeader")) {
if (exposedHeaders == null) {
exposedHeaders = new ArrayList();
}
} else if (name.equals("AllowedHeader")) {
if (allowedHeaders == null) {
allowedHeaders = new LinkedList();
}
}
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("CORSConfiguration")) {
if (name.equals("CORSRule")) {
currentRule.setAllowedHeaders(allowedHeaders);
currentRule.setAllowedMethods(allowedMethods);
currentRule.setAllowedOrigins(allowedOrigins);
currentRule.setExposedHeaders(exposedHeaders);
allowedHeaders = null;
allowedMethods = null;
allowedOrigins = null;
exposedHeaders = null;
configuration.getRules().add(currentRule);
currentRule = null;
}
} else if (in("CORSConfiguration", "CORSRule")) {
if (name.equals("ID")) {
currentRule.setId(getText());
} else if (name.equals("AllowedOrigin")) {
allowedOrigins.add(getText());
} else if (name.equals("AllowedMethod")) {
allowedMethods.add(AllowedMethods.fromValue(getText()));
} else if (name.equals("MaxAgeSeconds")) {
currentRule.setMaxAgeSeconds(Integer.parseInt(getText()));
} else if (name.equals("ExposeHeader")) {
exposedHeaders.add(getText());
} else if (name.equals("AllowedHeader")) {
allowedHeaders.add(getText());
}
}
}
}
public static class BucketDomainConfigurationHandler extends AbstractHandler {
private final BucketDomainConfiguration configuration =
new BucketDomainConfiguration();
private DomainRule currentRule;
private String status;
private String mname;
private String type;
private String forcedReplacement;
public BucketDomainConfiguration getConfiguration() {
return configuration;
}
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
if (in("DomainConfiguration")) {
if (name.equals("DomainRule")) {
currentRule = new DomainRule();
}
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("DomainConfiguration")) {
if (name.equals("DomainRule")) {
currentRule.setStatus(status);
currentRule.setName(mname);
currentRule.setType(type);
currentRule.setForcedReplacement(forcedReplacement);
configuration.getDomainRules().add(currentRule);
currentRule = null;
status = null;
mname = null;
type = null;
forcedReplacement = null;
}
} else if (in("DomainConfiguration", "DomainRule")) {
if (name.equals("Status")) {
status = getText();
} else if(name.equals("Name")) {
mname = getText();
} else if(name.equals("Type")) {
type = getText();
} else if(name.equals("ForcedReplacement")) {
forcedReplacement = getText();
}
}
}
}
public static class BucketDomainCertificateHandler extends AbstractHandler {
private final BucketGetDomainCertificate domainCertificate =
new BucketGetDomainCertificate();
public BucketGetDomainCertificate getBucketDomainCertificate(){
return domainCertificate;
}
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in(BucketDomainCertificateParameters.Element_Domain_Certificate)) {
if (BucketDomainCertificateParameters.Element_Status.equals(name)) {
domainCertificate.setStatus(getText());
}
}
}
}
public static class BucketRefererConfigurationHandler extends AbstractHandler {
private final BucketRefererConfiguration configuration =
new BucketRefererConfiguration();
public BucketRefererConfiguration getConfiguration() {
return configuration;
}
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("RefererConfiguration")) {
if (name.equals("Status")) {
configuration.setStatus(getText());
} else if (name.equals("RefererType")) {
configuration.setRefererType(getText());
} else if (name.equals("EmptyReferConfiguration")) {
configuration.setEmptyReferConfiguration(getText());
}
} else if (in("RefererConfiguration", "DomainList")) {
if (name.equals("Domain")) {
configuration.addDomain(getText());
}
}
}
}
private static String findAttributeValue(String qnameToFind, Attributes attrs) {
for (int i = 0; i < attrs.getLength(); i++) {
String qname = attrs.getQName(i);
if (qname.trim().equalsIgnoreCase(qnameToFind.trim())) {
return attrs.getValue(i);
}
}
return null;
}
/**
* Handler for LoggingStatus response XML documents for a bucket. The
* document is parsed into an {@link BucketLoggingConfiguration} object available
* via the {@link #getBucketLoggingConfiguration()} method.
*/
public static class BucketLoggingConfigurationHandler extends AbstractHandler {
private final BucketLoggingConfiguration bucketLoggingConfiguration =
new BucketLoggingConfiguration();
/**
* @return
* an object representing the bucket's LoggingStatus document.
*/
public BucketLoggingConfiguration getBucketLoggingConfiguration() {
return bucketLoggingConfiguration;
}
@Override
protected void doStartElement(
String uri,
String name,
String qName,
Attributes attrs) {
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("BucketLoggingStatus", "LoggingEnabled")) {
if (name.equals("TargetBucket")) {
bucketLoggingConfiguration
.setDestinationBucketName(getText());
} else if (name.equals("TargetPrefix")) {
bucketLoggingConfiguration
.setLogFilePrefix(getText());
}
}
}
}
public static class GetBucketInventoryConfigurationHandler extends AbstractHandler {
public static final String SSE_COS = "SSE-COS";
private final GetBucketInventoryConfigurationResult result = new GetBucketInventoryConfigurationResult();
private final InventoryConfiguration configuration = new InventoryConfiguration();
private List optionalFields;
private InventoryDestination inventoryDestination;
private InventoryFilter filter;
private InventoryCosBucketDestination cosBucketDestination;
private InventorySchedule inventorySchedule;
public GetBucketInventoryConfigurationResult getResult() {
return result.withInventoryConfiguration(configuration);
}
@Override
protected void doStartElement(
String uri,
String name,
String qName,
Attributes attrs) {
if (in("InventoryConfiguration")) {
if (name.equals("Destination")) {
inventoryDestination = new InventoryDestination();
} else if(name.equals("Filter")) {
filter = new InventoryFilter();
} else if(name.equals("Schedule")) {
inventorySchedule = new InventorySchedule();
} else if(name.equals("OptionalFields")) {
optionalFields = new ArrayList();
}
} else if (in("InventoryConfiguration", "Destination")) {
if (name.equals("COSBucketDestination")) {
cosBucketDestination = new InventoryCosBucketDestination();
}
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("InventoryConfiguration")) {
if (name.equals("Id")) {
configuration.setId(getText());
} else if (name.equals("Destination")) {
configuration.setDestination(inventoryDestination);
inventoryDestination = null;
} else if (name.equals("IsEnabled")) {
configuration.setEnabled("true".equals(getText()));
} else if (name.equals("Filter")) {
configuration.setInventoryFilter(filter);
filter = null;
} else if (name.equals("IncludedObjectVersions")) {
configuration.setIncludedObjectVersions(getText());
} else if (name.equals("Schedule")) {
configuration.setSchedule(inventorySchedule);
inventorySchedule = null;
} else if (name.equals("OptionalFields")) {
configuration.setOptionalFields(optionalFields);
optionalFields = null;
}
} else if (in("InventoryConfiguration", "Destination")) {
if ( name.equals("COSBucketDestination") ) {
inventoryDestination.setCosBucketDestination(cosBucketDestination);
cosBucketDestination = null;
}
} else if (in("InventoryConfiguration", "Destination", "COSBucketDestination")) {
if (name.equals("AccountId")) {
cosBucketDestination.setAccountId(getText());
} else if (name.equals("Bucket")) {
cosBucketDestination.setBucketArn(getText());
} else if (name.equals("Format")) {
cosBucketDestination.setFormat(getText());
} else if (name.equals("Prefix")) {
cosBucketDestination.setPrefix(getText());
}
} else if (in("InventoryConfiguration", "Destination", "COSBucketDestination", "Encryption")) {
if (name.equals(SSE_COS)) {
cosBucketDestination.setEncryption(new ServerSideEncryptionCOS());
}
} else if (in("InventoryConfiguration", "Filter")) {
if (name.equals("Prefix")) {
filter.setPredicate(new InventoryPrefixPredicate(getText()));
}
} else if (in("InventoryConfiguration", "Schedule")) {
if (name.equals("Frequency")) {
inventorySchedule.setFrequency(getText());
}
} else if (in("InventoryConfiguration", "OptionalFields")) {
if (name.equals("Field")) {
optionalFields.add(getText());
}
}
}
}
public static class BucketTaggingConfigurationHandler extends AbstractHandler {
private final BucketTaggingConfiguration configuration =
new BucketTaggingConfiguration();
private Map currentTagSet;
private String currentTagKey;
private String currentTagValue;
public BucketTaggingConfiguration getConfiguration() {
return configuration;
}
@Override
protected void doStartElement(
String uri,
String name,
String qName,
Attributes attrs) {
if (in("Tagging")) {
if (name.equals("TagSet")) {
currentTagSet = new LinkedHashMap();
}
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("Tagging")) {
if (name.equals("TagSet")) {
configuration.getAllTagSets()
.add(new TagSet(currentTagSet));
currentTagSet = null;
}
}
else if (in("Tagging", "TagSet")) {
if (name.equals("Tag")) {
if (currentTagKey != null && currentTagValue != null) {
currentTagSet.put(currentTagKey, currentTagValue);
}
currentTagKey = null;
currentTagValue = null;
}
}
else if (in("Tagging", "TagSet", "Tag")) {
if (name.equals("Key")) {
currentTagKey = getText();
} else if (name.equals("Value")) {
currentTagValue = getText();
}
}
}
}
/*
HTTP/1.1 200 OK
x-amz-id-2: ITnGT1y4RyTmXa3rPi4hklTXouTf0hccUjo0iCPjz6FnfIutBj3M7fPGlWO2SEWp
x-amz-request-id: 51991C342C575321
Date: Wed, 14 May 2014 02:11:22 GMT
Content-Length: ...
...
...
true
token1
token2
*/
public static class ListBucketInventoryConfigurationsHandler extends AbstractHandler {
public static final String SSE_COS = "SSE-COS";
private final ListBucketInventoryConfigurationsResult result = new ListBucketInventoryConfigurationsResult();
private InventoryConfiguration currentConfiguration;
private List currentOptionalFieldsList;
private InventoryDestination currentDestination;
private InventoryFilter currentFilter;
private InventoryCosBucketDestination currentCosBucketDestination;
private InventorySchedule currentSchedule;
public ListBucketInventoryConfigurationsResult getResult() {
return result;
}
@Override
protected void doStartElement(
String uri,
String name,
String qName,
Attributes attrs) {
if (in("ListInventoryConfigurationResult")) {
if (name.equals("InventoryConfiguration")) {
currentConfiguration = new InventoryConfiguration();
}
} else if (in("ListInventoryConfigurationResult", "InventoryConfiguration")) {
if (name.equals("Destination")) {
currentDestination = new InventoryDestination();
} else if(name.equals("Filter")) {
currentFilter = new InventoryFilter();
} else if(name.equals("Schedule")) {
currentSchedule = new InventorySchedule();
} else if(name.equals("OptionalFields")) {
currentOptionalFieldsList = new ArrayList();
}
} else if (in("ListInventoryConfigurationResult", "InventoryConfiguration", "Destination")) {
if (name.equals("COSBucketDestination")) {
currentCosBucketDestination = new InventoryCosBucketDestination();
}
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("ListInventoryConfigurationResult")) {
if (name.equals("InventoryConfiguration")) {
if (result.getInventoryConfigurationList() == null) {
result.setInventoryConfigurationList(new ArrayList());
}
result.getInventoryConfigurationList().add(currentConfiguration);
currentConfiguration = null;
} else if (name.equals("IsTruncated")) {
result.setTruncated("true".equals(getText()));
} else if (name.equals("ContinuationToken")) {
result.setContinuationToken(getText());
} else if (name.equals("NextContinuationToken")) {
result.setNextContinuationToken(getText());
}
}
else if (in("ListInventoryConfigurationResult", "InventoryConfiguration")) {
if (name.equals("Id")) {
currentConfiguration.setId(getText());
} else if (name.equals("Destination")) {
currentConfiguration.setDestination(currentDestination);
currentDestination = null;
} else if (name.equals("IsEnabled")) {
currentConfiguration.setEnabled("true".equals(getText()));
} else if (name.equals("Filter")) {
currentConfiguration.setInventoryFilter(currentFilter);
currentFilter = null;
} else if (name.equals("IncludedObjectVersions")) {
currentConfiguration.setIncludedObjectVersions(getText());
} else if (name.equals("Schedule")) {
currentConfiguration.setSchedule(currentSchedule);
currentSchedule = null;
} else if (name.equals("OptionalFields")) {
currentConfiguration.setOptionalFields(currentOptionalFieldsList);
currentOptionalFieldsList = null;
}
} else if (in("ListInventoryConfigurationResult", "InventoryConfiguration", "Destination")) {
if ( name.equals("COSBucketDestination") ) {
currentDestination.setCosBucketDestination(currentCosBucketDestination);
currentCosBucketDestination = null;
}
} else if (in("ListInventoryConfigurationResult", "InventoryConfiguration", "Destination", "COSBucketDestination")) {
if (name.equals("AccountId")) {
currentCosBucketDestination.setAccountId(getText());
} else if (name.equals("Bucket")) {
currentCosBucketDestination.setBucketArn(getText());
} else if (name.equals("Format")) {
currentCosBucketDestination.setFormat(getText());
} else if (name.equals("Prefix")) {
currentCosBucketDestination.setPrefix(getText());
}
} else if (in("ListInventoryConfigurationResult", "InventoryConfiguration", "Destination", "COSBucketDestination", "Encryption")) {
if (name.equals(SSE_COS)) {
currentCosBucketDestination.setEncryption(new ServerSideEncryptionCOS());
}
} else if (in("ListInventoryConfigurationResult", "InventoryConfiguration", "Filter")) {
if (name.equals("Prefix")) {
currentFilter.setPredicate(new InventoryPrefixPredicate(getText()));
}
} else if (in("ListInventoryConfigurationResult", "InventoryConfiguration", "Schedule")) {
if (name.equals("Frequency")) {
currentSchedule.setFrequency(getText());
}
} else if (in("ListInventoryConfigurationResult", "InventoryConfiguration", "OptionalFields")) {
if (name.equals("Field")) {
currentOptionalFieldsList.add(getText());
}
}
}
}
/**
* Handler for unmarshalling the response from GET Object Tagging.
*
*
*
*
* Foo
* 1
*
*
* Bar
* 2
*
*
* Baz
* 3
*
*
*
*/
public static class GetObjectTaggingHandler extends AbstractHandler {
private GetObjectTaggingResult getObjectTaggingResult;
private List tagSet;
private String currentTagValue;
private String currentTagKey;
public GetObjectTaggingResult getResult() {
return getObjectTaggingResult;
}
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
if (in("Tagging")) {
if (name.equals("TagSet")) {
tagSet = new ArrayList();
}
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("Tagging")) {
if (name.equals("TagSet")) {
getObjectTaggingResult = new GetObjectTaggingResult(tagSet);
tagSet = null;
}
}
if (in("Tagging", "TagSet")) {
if (name.equals("Tag")) {
tagSet.add(new Tag(currentTagKey, currentTagValue));
currentTagKey = null;
currentTagValue = null;
}
} else if (in("Tagging", "TagSet", "Tag")) {
if (name.equals("Key")) {
currentTagKey = getText();
} else if (name.equals("Value")) {
currentTagValue = getText();
}
}
}
}
public static class GetBucketIntelligentTierConfigurationHandler extends AbstractHandler {
private final BucketIntelligentTierConfiguration configuration =
new BucketIntelligentTierConfiguration();
private BucketIntelligentTierConfiguration.Transition transition;
public BucketIntelligentTierConfiguration getConfiguration() {
return configuration;
}
@Override
protected void doStartElement(
String uri,
String name,
String qName,
Attributes attrs) {
if (in("IntelligentTieringConfiguration")) {
if (name.equals("Transition")) {
configuration.setTransition(new BucketIntelligentTierConfiguration.Transition());
}
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("IntelligentTieringConfiguration")) {
if(name.equals("Status")) {
configuration.setStatus(getText());
}
} else if(in("IntelligentTieringConfiguration", "Transition")) {
if (name.equals("Days")) {
configuration.getTransition().setDays(Integer.parseInt(getText()));
}
}
}
}
public static class ListQueueHandler extends AbstractHandler {
private MediaListQueueResponse response = new MediaListQueueResponse();
boolean isNew = true;
MediaQueueObject queueObject;
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
if ("QueueList".equals(name)) {
isNew = true;
}
if (isNew) {
queueObject = new MediaQueueObject();
isNew = false;
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("Response")) {
switch (name) {
case "RequestId":
response.setRequestId(getText());
break;
case "TotalCount":
response.setTotalCount(getText());
break;
case "PageNumber":
response.setPageNumber(getText());
break;
case "PageSize":
response.setPageSize(getText());
break;
default:
break;
}
} else if (in("Response", "QueueList")) {
switch (name) {
case "QueueId":
queueObject.setQueueId(getText());
break;
case "Name":
queueObject.setName(getText());
break;
case "State":
queueObject.setState(getText());
break;
case "MaxSize":
queueObject.setMaxSize(getText());
break;
case "MaxConcurrent":
queueObject.setMaxConcurrent(getText());
break;
case "CreateTime":
queueObject.setCreateTime(getText());
break;
case "UpdateTime":
queueObject.setUpdateTime(getText());
break;
case "Category":
queueObject.setCategory(getText());
break;
case "BucketId":
queueObject.setBucketId(getText());
break;
case "BucketName":
queueObject.setBucketName(getText());
break;
default:
break;
}
} else if (in("Response", "QueueList", "NotifyConfig")) {
switch (name) {
case "Url":
queueObject.getNotifyConfig().setUrl(getText());
break;
case "State":
queueObject.getNotifyConfig().setState(getText());
break;
case "Type":
queueObject.getNotifyConfig().setType(getText());
break;
case "Event":
queueObject.getNotifyConfig().setEvent(getText());
break;
default:
break;
}
} else if (in("Response", "NonExistPIDs")) {
if ("QueueID".equals(name)) {
response.getNonExistPIDs().add(getText());
}
}
if ("QueueList".equals(name) && !isNew) {
response.getQueueList().add(queueObject);
queueObject = null;
}
}
public MediaListQueueResponse getResponse() {
return response;
}
public void setResponse(MediaListQueueResponse response) {
this.response = response;
}
}
public static class DocListQueueHandler extends AbstractHandler {
private DocListQueueResponse response = new DocListQueueResponse();
boolean isNew = true;
MediaQueueObject queueObject;
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
if ("QueueList".equals(name)) {
isNew = true;
}
if (isNew) {
queueObject = new MediaQueueObject();
isNew = false;
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("Response")) {
switch (name) {
case "RequestId":
response.setRequestId(getText());
break;
case "TotalCount":
response.setTotalCount(getText());
break;
case "PageNumber":
response.setPageNumber(getText());
break;
case "PageSize":
response.setPageSize(getText());
break;
default:
break;
}
} else if (in("Response", "QueueList")) {
switch (name) {
case "QueueId":
queueObject.setQueueId(getText());
break;
case "Name":
queueObject.setName(getText());
break;
case "State":
queueObject.setState(getText());
break;
case "MaxSize":
queueObject.setMaxSize(getText());
break;
case "MaxConcurrent":
queueObject.setMaxConcurrent(getText());
break;
case "CreateTime":
queueObject.setCreateTime(getText());
break;
case "UpdateTime":
queueObject.setUpdateTime(getText());
break;
case "Category":
queueObject.setCategory(getText());
break;
case "BucketId":
queueObject.setBucketId(getText());
break;
case "BucketName":
queueObject.setBucketName(getText());
break;
default:
break;
}
} else if (in("Response", "QueueList", "NotifyConfig")) {
switch (name) {
case "Url":
queueObject.getNotifyConfig().setUrl(getText());
break;
case "State":
queueObject.getNotifyConfig().setState(getText());
break;
case "Type":
queueObject.getNotifyConfig().setType(getText());
break;
case "Event":
queueObject.getNotifyConfig().setEvent(getText());
break;
default:
break;
}
} else if (in("Response", "NonExistPIDs")) {
if ("QueueID".equals(name)) {
response.getNonExistPIDs().add(getText());
}
}
if ("QueueList".equals(name) && !isNew) {
response.getQueueList().add(queueObject);
queueObject = null;
}
}
public DocListQueueResponse getResponse() {
return response;
}
public void setResponse(DocListQueueResponse response) {
this.response = response;
}
}
public static class ListMediaBucketHandler extends AbstractHandler {
private MediaBucketResponse response = new MediaBucketResponse();
boolean isNew = true;
MediaBucketObject bucketObject;
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
if ("MediaBucketList".equals(name)) {
isNew = true;
}
if (isNew) {
bucketObject = new MediaBucketObject();
isNew = false;
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("Response")) {
switch (name) {
case "RequestId":
response.setRequestId(getText());
break;
case "TotalCount":
response.setTotalCount(getText());
break;
case "PageNumber":
response.setPageNumber(getText());
break;
case "PageSize":
response.setPageSize(getText());
break;
default:
break;
}
} else if (in("Response", "MediaBucketList")) {
switch (name) {
case "BucketId":
bucketObject.setBucketId(getText());
break;
case "Region":
bucketObject.setRegion(getText());
break;
case "CreateTime":
bucketObject.setCreateTime(getText());
break;
case "Name":
bucketObject.setName(getText());
break;
case "AliasBucketId":
bucketObject.setAliasBucketId(getText());
break;
default:
break;
}
}
if ("MediaBucketList".equals(name) && !isNew) {
response.getMediaBucketList().add(bucketObject);
bucketObject = null;
}
}
public MediaBucketResponse getResponse() {
return response;
}
}
public static class WorkflowListHandler extends AbstractHandler {
private MediaWorkflowListResponse response = new MediaWorkflowListResponse();
MediaWorkflowObject workflowObject;
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
if ("MediaWorkflowList".equals(name)) {
workflowObject = new MediaWorkflowObject();
}
if (in("Response", "MediaWorkflowList", "Topology", "Nodes")) {
Map workflowNodes = workflowObject.getTopology().getMediaWorkflowNodes();
workflowNodes.put(name, new MediaWorkflowNode());
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("Response")) {
switch (name) {
case "RequestId":
response.setRequestId(getText());
break;
case "TotalCount":
response.setTotalCount(getText());
break;
case "PageNumber":
response.setPageNumber(getText());
break;
case "PageSize":
response.setPageSize(getText());
break;
default:
break;
}
} else if (in("Response", "MediaWorkflowList")) {
switch (name) {
case "Name":
workflowObject.setName(getText());
break;
case "WorkflowId":
workflowObject.setWorkflowId(getText());
break;
case "State":
workflowObject.setState(getText());
break;
case "CreateTime":
workflowObject.setCreateTime(getText());
break;
case "UpdateTime":
workflowObject.setUpdateTime(getText());
break;
case "BucketId":
workflowObject.setBucketId(getText());
break;
default:
break;
}
} else if (in("Response", "MediaWorkflowList", "Topology", "Dependencies")) {
Map dependencyMap = workflowObject.getTopology().getMediaWorkflowDependency();
MediaWorkflowDependency dependency = dependencyMap.get(name);
if (dependency == null) {
dependency = new MediaWorkflowDependency();
}
dependency.setValue(getText());
dependencyMap.put(name, dependency);
}
Map nodesMap = workflowObject.getTopology().getMediaWorkflowNodes();
for (String key : nodesMap.keySet()) {
MediaWorkflowNode workflowNode = nodesMap.get(key);
if (in("Response", "MediaWorkflowList", "Topology", "Nodes", key, "Operation")) {
if ("TemplateId".equals(name)) {
workflowNode.getOperation().setTemplateId(getText());
}
} else if (in("Response", "MediaWorkflowList", "Topology", "Nodes", key, "Operation", "Output")) {
MediaOutputObject output = workflowNode.getOperation().getOutput();
switch (name) {
case "Bucket":
output.setBucket(getText());
return;
case "Object":
output.setObject(getText());
return;
case "Region":
output.setRegion(getText());
return;
default:
return;
}
} else if (in("Response", "MediaWorkflowList", "Topology", "Nodes", key)) {
if ("Type".equals(name)) {
workflowNode.setType(getText());
}
} else if (in("Response", "MediaWorkflowList", "Topology", "Nodes", key, "Input")) {
MediaWorkflowInput input = workflowNode.getInput();
switch (name) {
case "ObjectPrefix":
input.setObjectPrefix(getText());
return;
case "QueueId":
input.setQueueId(getText());
return;
default:
return;
}
}
}
if ("MediaWorkflowList".equals(name)) {
response.getMediaWorkflowList().add(workflowObject);
}
}
public MediaWorkflowListResponse getResponse() {
return response;
}
public void setResponse(MediaWorkflowListResponse response) {
this.response = response;
}
}
public static class WorkflowHandler extends AbstractHandler {
private MediaWorkflowResponse response = new MediaWorkflowResponse();
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
}
@Override
protected void doEndElement(String uri, String name, String qName) {
switch (name) {
case "Name":
response.setName(getText());
break;
case "WorkflowId":
response.setWorkflowId(getText());
break;
case "State":
response.setState(getText());
break;
case "CreateTime":
response.setCreateTime(getText());
break;
case "UpdateTime":
response.setUpdateTime(getText());
break;
case "BucketId":
response.setBucketId(getText());
break;
default:
break;
}
}
public MediaWorkflowResponse getResponse() {
return response;
}
public void setResponse(MediaWorkflowResponse response) {
this.response = response;
}
}
public static class WorkflowExecutionHandler extends AbstractHandler {
private MediaWorkflowExecutionResponse response = new MediaWorkflowExecutionResponse();
MediaWorkflowExecutionObject workflowObject = response.getWorkflowExecution();
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
if ("Tasks".equals(name)) {
workflowObject.getTasks().addLast(new MediaTasks());
}
if (in("Response", "WorkflowExecution", "Topology", "Nodes")) {
Map workflowNodes = workflowObject.getTopology().getMediaWorkflowNodes();
workflowNodes.put(name, new MediaWorkflowNode());
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("Response")) {
switch (name) {
case "RequestId":
response.setRequestId(getText());
break;
default:
break;
}
} else if (in("Response", "WorkflowExecution")) {
switch (name) {
case "Object":
workflowObject.setObject(getText());
break;
case "WorkflowId":
workflowObject.setWorkflowId(getText());
break;
case "State":
workflowObject.setState(getText());
break;
case "CreateTime":
workflowObject.setCreateTime(getText());
break;
case "RunId":
workflowObject.setRunId(getText());
break;
case "WorkflowName":
workflowObject.setWorkflowName(getText());
break;
default:
break;
}
} else if (in("Response", "WorkflowExecution", "Tasks")) {
MediaTasks tasks = workflowObject.getTasks().getLast();
switch (name) {
case "Type":
tasks.setType(getText());
break;
case "CreateTime":
tasks.setCreateTime(getText());
break;
case "EndTime":
tasks.setEndTime(getText());
break;
case "State":
tasks.setState(getText());
break;
case "JobId":
tasks.setJobId(getText());
break;
case "Name":
tasks.setName(getText());
break;
default:
break;
}
} else if (in("Response", "WorkflowExecution", "Topology", "Dependencies")) {
Map dependencyMap = workflowObject.getTopology().getMediaWorkflowDependency();
MediaWorkflowDependency dependency = dependencyMap.get(name);
if (dependency == null) {
dependency = new MediaWorkflowDependency();
}
dependency.setValue(getText());
dependencyMap.put(name, dependency);
}
Map nodesMap = workflowObject.getTopology().getMediaWorkflowNodes();
for (String key : nodesMap.keySet()) {
MediaWorkflowNode workflowNode = nodesMap.get(key);
if (in("Response", "WorkflowExecution", "Topology", "Nodes", key, "Operation")) {
if ("TemplateId".equals(name)) {
workflowNode.getOperation().setTemplateId(getText());
}
} else if (in("Response", "WorkflowExecution", "Topology", "Nodes", key, "Operation", "Output")) {
MediaOutputObject output = workflowNode.getOperation().getOutput();
switch (name) {
case "Bucket":
output.setBucket(getText());
return;
case "Object":
output.setObject(getText());
return;
case "Region":
output.setRegion(getText());
return;
default:
return;
}
} else if (in("Response", "WorkflowExecution", "Topology", "Nodes", key)) {
if ("Type".equals(name)) {
workflowNode.setType(getText());
}
} else if (in("Response", "WorkflowExecution", "Topology", "Nodes", key, "Input")) {
MediaWorkflowInput input = workflowNode.getInput();
switch (name) {
case "ObjectPrefix":
input.setObjectPrefix(getText());
return;
case "QueueId":
input.setQueueId(getText());
return;
default:
return;
}
}
}
}
public MediaWorkflowExecutionResponse getResponse() {
return response;
}
public void setResponse(MediaWorkflowExecutionResponse response) {
this.response = response;
}
}
public static class MediaJobCreatHandler extends AbstractHandler {
MediaJobResponse response = new MediaJobResponse();
List concatFragmentList = response.getJobsDetail().getOperation().getMediaConcatTemplate().getConcatFragmentList();
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
if ("ConcatFragment".equals(name)){
concatFragmentList.add(new MediaConcatFragmentObject());
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
MediaJobObject jobsDetail = response.getJobsDetail();
if (in("Response", "JobsDetail")) {
switch (name) {
case "Code":
jobsDetail.setCode(getText());
break;
case "CreationTime":
jobsDetail.setCreationTime(getText());
break;
case "EndTime":
jobsDetail.setEndTime(getText());
break;
case "JobId":
jobsDetail.setJobId(getText());
break;
case "Message":
jobsDetail.setMessage(getText());
break;
case "QueueId":
jobsDetail.setQueueId(getText());
break;
case "State":
jobsDetail.setState(getText());
break;
case "Tag":
jobsDetail.setTag(getText());
break;
case "BucketName":
jobsDetail.setBucketName(getText());
break;
default:
break;
}
} else if (in("Response", "JobsDetail", "Input")) {
jobsDetail.getInput().setObject(getText());
} else if (in("Response", "JobsDetail", "Operation")) {
MediaJobOperation operation = jobsDetail.getOperation();
switch (name) {
case "TemplateId":
operation.setTemplateId(getText());
break;
case "WatermarkTemplateId":
operation.getWatermarkTemplateId().add(getText());
break;
case "UserData":
operation.setUserData(getText());
break;
case "JobLevel":
operation.setJobLevel(getText());
break;
case "TemplateName":
operation.setTemplateName(getText());
break;
default:
break;
}
} else if (in("Response", "JobsDetail", "Operation", "MediaInfo", "Format")) {
MediaFormat format = jobsDetail.getOperation().getMediaInfo().getFormat();
ParserMediaInfoUtils.ParsingMediaFormat(format, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "MediaInfo", "Stream", "Audio")) {
MediaInfoAudio audio = jobsDetail.getOperation().getMediaInfo().getStream().getAudio();
ParserMediaInfoUtils.ParsingStreamAudio(audio, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "MediaInfo", "Stream", "Subtitle")) {
MediaInfoSubtitle subtitle = jobsDetail.getOperation().getMediaInfo().getStream().getSubtitle();
ParserMediaInfoUtils.ParsingSubtitle(subtitle, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "MediaInfo", "Stream", "Video")) {
MediaInfoVideo video = jobsDetail.getOperation().getMediaInfo().getStream().getVideo();
ParserMediaInfoUtils.ParsingMediaVideo(video, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "Watermark")) {
MediaWatermark watermark = jobsDetail.getOperation().getWatermark();
ParserMediaInfoUtils.ParsingWatermark(watermark, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "RemoveWatermark")) {
MediaRemoveWaterMark removeWatermark = jobsDetail.getOperation().getRemoveWatermark();
ParserMediaInfoUtils.ParsingRemoveWatermark(removeWatermark, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "Watermark", "Text")) {
MediaWaterMarkText text = jobsDetail.getOperation().getWatermark().getText();
ParserMediaInfoUtils.ParsingWatermarkText(text, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "Watermark", "Image")) {
MediaWaterMarkImage image = jobsDetail.getOperation().getWatermark().getImage();
ParserMediaInfoUtils.ParsingWatermarkImage(image, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "Transcode", "Container")) {
if ("Format".equalsIgnoreCase(name))
response.getJobsDetail().getOperation().getTranscode().getContainer().setFormat(getText());
} else if (in("Response", "JobsDetail", "Operation", "Transcode", "Video")) {
MediaAudioObject audio = jobsDetail.getOperation().getTranscode().getAudio();
ParserMediaInfoUtils.ParsingStreamAudio(audio, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "Transcode", "Audio")) {
MediaTranscodeVideoObject video = jobsDetail.getOperation().getTranscode().getVideo();
ParserMediaInfoUtils.ParsingMediaVideo(video, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "Transcode", "TransConfig")) {
MediaTransConfigObject transConfig = jobsDetail.getOperation().getTranscode().getTransConfig();
ParserMediaInfoUtils.ParsingTransConfig(transConfig, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "Transcode", "TimeInterval")) {
MediaTimeIntervalObject timeInterval = jobsDetail.getOperation().getTranscode().getTimeInterval();
ParserMediaInfoUtils.ParsingMediaTimeInterval(timeInterval, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "Output")) {
ParserMediaInfoUtils.ParsingOutput(jobsDetail.getOperation().getOutput(), name, getText());
}
MediaConcatTemplateObject mediaConcatTemplate = response.getJobsDetail().getOperation().getMediaConcatTemplate();
if (in("Response", "JobsDetail", "Operation", "ConcatTemplate", "ConcatFragment")) {
MediaConcatFragmentObject mediaConcatFragmentObject = concatFragmentList.get(concatFragmentList.size() - 1);
ParserMediaInfoUtils.ParseConcatFragment(mediaConcatFragmentObject,name,getText());
} else if (in("Response", "JobsDetail", "Operation", "ConcatTemplate", "Audio")) {
MediaAudioObject audio = mediaConcatTemplate.getAudio();
ParserMediaInfoUtils.ParsingMediaAudio(audio, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "ConcatTemplate", "Video")) {
MediaVideoObject video = mediaConcatTemplate.getVideo();
ParserMediaInfoUtils.ParsingMediaVideo(video, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "ConcatTemplate", "Container")) {
MediaContainerObject container = mediaConcatTemplate.getContainer();
if ("Format".equals(name)) {
container.setFormat(getText());
}
} else if (in("Response", "JobsDetail", "Operation", "ConcatTemplate")){
if ("Index".equals(name)) {
mediaConcatTemplate.setIndex(getText());
}
} else if (in("Response", "JobsDetail", "Operation", "DigitalWatermark") ) {
MediaDigitalWatermark digitalWatermark = response.getJobsDetail().getOperation().getDigitalWatermark();
ParserMediaInfoUtils.ParsingDigitalWatermark(digitalWatermark, name, getText());
} else if ( in("Response", "JobsDetail", "Operation", "ExtractDigitalWatermark")) {
ExtractDigitalWatermark digitalWatermark = response.getJobsDetail().getOperation().getExtractDigitalWatermark();
ParserMediaInfoUtils.ParsingDigitalWatermark(digitalWatermark, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "PicProcess")) {
MediaJobOperation operation = response.getJobsDetail().getOperation();
if ("IsPicInfo".equalsIgnoreCase(name)) {
operation.getPicProcess().setIsPicInfo(getText());
} else if ("ProcessRule".equalsIgnoreCase(name)) {
operation.getPicProcess().setProcessRule(getText());
}
} else if (in("Response", "JobsDetail", "Operation", "VoiceSeparate")) {
if ("AudioMode".equalsIgnoreCase(name)) {
jobsDetail.getOperation().getVoiceSeparate().setAudioMode(getText());
}
} else if (in("Response", "JobsDetail", "Operation", "VoiceSeparate", "AudioConfig")) {
ParserMediaInfoUtils.ParseAudioConfig(jobsDetail.getOperation().getVoiceSeparate().getAudioConfig(), name, getText());
} else if (in("Response", "JobsDetail", "Operation", "TtsConfig")) {
ParserMediaInfoUtils.ParseTtsConfig(jobsDetail.getOperation().getTtsConfig(), name, getText());
} else if (in("Response", "JobsDetail", "Operation", "TtsTpl")) {
ParserMediaInfoUtils.ParseTtsTpl(jobsDetail.getOperation().getTtsTpl(), name, getText());
} else if (in("Response", "JobsDetail", "Operation", "VideoTag")) {
ParserMediaInfoUtils.ParseVideoTag(jobsDetail.getOperation().getVideoTag(), name, getText());
}else if (in("Response", "JobsDetail", "Operation", "QualityEstimateConfig")) {
ParserMediaInfoUtils.ParseQualityEstimateConfig(jobsDetail.getOperation().getQualityEstimateConfig(), name, getText());
}
}
public MediaJobResponse getResponse() {
return response;
}
}
public static class DescribeMediaJobsHandler extends AbstractHandler {
MediaListJobResponse response = new MediaListJobResponse();
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
List jobsDetailList = response.getJobsDetailList();
if ("JobsDetail".equalsIgnoreCase(name)) {
List jobsDetail = jobsDetailList;
jobsDetail.add(new MediaJobObject());
}
if ("ConcatFragment".equals(name)){
List concatFragmentList = jobsDetailList.get(jobsDetailList.size()-1).getOperation().getMediaConcatTemplate().getConcatFragmentList();
concatFragmentList.add(new MediaConcatFragmentObject());
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
List jobsDetailList = response.getJobsDetailList();
MediaJobObject jobsDetail;
if (jobsDetailList.isEmpty()) {
jobsDetail = new MediaJobObject();
} else {
jobsDetail = jobsDetailList.get(jobsDetailList.size() - 1);
}
if (in("Response", "JobsDetail")) {
switch (name) {
case "Code":
jobsDetail.setCode(getText());
break;
case "CreationTime":
jobsDetail.setCreationTime(getText());
break;
case "EndTime":
jobsDetail.setEndTime(getText());
break;
case "JobId":
jobsDetail.setJobId(getText());
break;
case "Message":
jobsDetail.setMessage(getText());
break;
case "QueueId":
jobsDetail.setQueueId(getText());
break;
case "State":
jobsDetail.setState(getText());
break;
case "Tag":
jobsDetail.setTag(getText());
break;
case "BucketName":
jobsDetail.setBucketName(getText());
break;
default:
break;
}
} else if (in("Response", "JobsDetail", "Input")) {
jobsDetail.getInput().setObject(getText());
} else if (in("Response", "JobsDetail", "Operation")) {
MediaJobOperation operation = jobsDetail.getOperation();
switch (name) {
case "TemplateId":
operation.setTemplateId(getText());
break;
case "WatermarkTemplateId":
operation.getWatermarkTemplateId().add(getText());
break;
case "UserData":
operation.setUserData(getText());
break;
case "JobLevel":
operation.setJobLevel(getText());
break;
case "TemplateName":
operation.setTemplateName(getText());
break;
default:
break;
}
} else if (in("Response", "JobsDetail", "Operation", "MediaInfo", "Format")) {
MediaFormat format = jobsDetail.getOperation().getMediaInfo().getFormat();
ParserMediaInfoUtils.ParsingMediaFormat(format, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "MediaInfo", "Stream", "Audio")) {
MediaInfoAudio audio = jobsDetail.getOperation().getMediaInfo().getStream().getAudio();
ParserMediaInfoUtils.ParsingStreamAudio(audio, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "MediaInfo", "Stream", "Subtitle")) {
MediaInfoSubtitle subtitle = jobsDetail.getOperation().getMediaInfo().getStream().getSubtitle();
ParserMediaInfoUtils.ParsingSubtitle(subtitle, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "MediaInfo", "Stream", "Video")) {
MediaInfoVideo video = jobsDetail.getOperation().getMediaInfo().getStream().getVideo();
ParserMediaInfoUtils.ParsingMediaVideo(video, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "RemoveWatermark")) {
MediaRemoveWaterMark removeWatermark = jobsDetail.getOperation().getRemoveWatermark();
ParserMediaInfoUtils.ParsingRemoveWatermark(removeWatermark, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "Transcode", "Container")) {
if ("Format".equalsIgnoreCase(name))
jobsDetail.getOperation().getTranscode().getContainer().setFormat(getText());
} else if (in("Response", "JobsDetail", "Operation", "Transcode", "Video")) {
MediaAudioObject audio = jobsDetail.getOperation().getTranscode().getAudio();
ParserMediaInfoUtils.ParsingStreamAudio(audio, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "Transcode", "Audio")) {
MediaTranscodeVideoObject video = jobsDetail.getOperation().getTranscode().getVideo();
ParserMediaInfoUtils.ParsingMediaVideo(video, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "Transcode", "TransConfig")) {
MediaTransConfigObject transConfig = jobsDetail.getOperation().getTranscode().getTransConfig();
ParserMediaInfoUtils.ParsingTransConfig(transConfig, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "Transcode", "TimeInterval")) {
MediaTimeIntervalObject timeInterval = jobsDetail.getOperation().getTranscode().getTimeInterval();
ParserMediaInfoUtils.ParsingMediaTimeInterval(timeInterval, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "Snapshot")) {
MediaSnapshotObject snapshot = jobsDetail.getOperation().getSnapshot();
ParserMediaInfoUtils.ParsingSnapshot(snapshot, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "Segment")) {
MediaSegmentObject segment = jobsDetail.getOperation().getSegment();
ParserMediaInfoUtils.ParsingSegment(segment, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "Snapshot", "SpriteSnapshotConfig")) {
SpriteSnapshotConfig snapshotConfig = jobsDetail.getOperation().getSnapshot().getSnapshotConfig();
ParserMediaInfoUtils.ParsingSnapshotConfig(snapshotConfig, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "Output")) {
MediaOutputObject output = jobsDetail.getOperation().getOutput();
ParserMediaInfoUtils.ParsingOutput(output, name, getText());
}
MediaConcatTemplateObject mediaConcatTemplate = jobsDetail.getOperation().getMediaConcatTemplate();
if (in("Response", "JobsDetail", "Operation", "ConcatTemplate", "ConcatFragment")) {
List concatFragmentList = mediaConcatTemplate.getConcatFragmentList();
MediaConcatFragmentObject mediaConcatFragmentObject = concatFragmentList.get(concatFragmentList.size() - 1);
ParserMediaInfoUtils.ParseConcatFragment(mediaConcatFragmentObject, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "ConcatTemplate", "Audio")) {
MediaAudioObject audio = mediaConcatTemplate.getAudio();
ParserMediaInfoUtils.ParsingMediaAudio(audio, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "ConcatTemplate", "Video")) {
MediaVideoObject video = mediaConcatTemplate.getVideo();
ParserMediaInfoUtils.ParsingMediaVideo(video, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "ConcatTemplate", "Container")) {
MediaContainerObject container = mediaConcatTemplate.getContainer();
if ("Format".equals(name)) {
container.setFormat(getText());
}
} else if (in("Response", "JobsDetail", "Operation", "ConcatTemplate")) {
if ("Index".equals(name)) {
mediaConcatTemplate.setIndex(getText());
}
} else if (in("Response", "JobsDetail", "Operation", "DigitalWatermark")) {
MediaDigitalWatermark digitalWatermark = jobsDetail.getOperation().getDigitalWatermark();
ParserMediaInfoUtils.ParsingDigitalWatermark(digitalWatermark, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "ExtractDigitalWatermark")) {
ExtractDigitalWatermark digitalWatermark = jobsDetail.getOperation().getExtractDigitalWatermark();
ParserMediaInfoUtils.ParsingDigitalWatermark(digitalWatermark, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "MediaResult", "OutputFile")) {
OutputFile outputFile = jobsDetail.getOperation().getMediaResult().getOutputFile();
ParserMediaInfoUtils.ParsingMediaResult(outputFile, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "MediaResult", "OutputFile", "Md5Info")) {
Md5Info md5Info = jobsDetail.getOperation().getMediaResult().getOutputFile().getMd5Info();
ParserMediaInfoUtils.ParsingMd5Info(md5Info, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "PicProcess")) {
MediaPicProcessTemplateObject picProcess = jobsDetail.getOperation().getPicProcess();
if ("IsPicInfo".equalsIgnoreCase(name)) {
picProcess.setIsPicInfo(getText());
} else if ("ProcessRule".equalsIgnoreCase(name)) {
picProcess.setProcessRule(getText());
}
} else if (in("Response", "JobsDetail", "Operation", "PicProcess")) {
MediaPicProcessTemplateObject picProcess = jobsDetail.getOperation().getPicProcess();
if ("IsPicInfo".equalsIgnoreCase(name)) {
picProcess.setIsPicInfo(getText());
} else if ("ProcessRule".equalsIgnoreCase(name)) {
picProcess.setProcessRule(getText());
}
} else if (in("Response", "JobsDetail", "Operation", "PicProcessResult")) {
if ("ObjectName".equalsIgnoreCase(name)) {
jobsDetail.getOperation().getPicProcessResult().setObjectName(getText());
}
} else if (in("Response", "JobsDetail", "Operation", "PicProcessResult", "OriginalInfo")) {
if ("Etag".equalsIgnoreCase(name)) {
jobsDetail.getOperation().getPicProcessResult().getOriginalInfo().setEtag(getText());
}
} else if (in("Response", "JobsDetail", "Operation", "PicProcessResult", "OriginalInfo", "ImageInfo")) {
ImageInfo imageInfo = jobsDetail.getOperation().getPicProcessResult().getOriginalInfo().getImageInfo();
ParserMediaInfoUtils.ParsingImageInfo(imageInfo, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "PicProcessResult", "ProcessResult")) {
ProcessResult processResult = jobsDetail.getOperation().getPicProcessResult().getProcessResult();
ParserMediaInfoUtils.ParsingProcessResult(processResult, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "VideoTargetRec")) {
VideoTargetRec videoTargetRec = jobsDetail.getOperation().getVideoTargetRec();
ParserMediaInfoUtils.ParsingVideoTargetRec(videoTargetRec, name, getText());
} else if (in("Response", "JobsDetail", "Operation", "TtsConfig")) {
ParserMediaInfoUtils.ParseTtsConfig(jobsDetail.getOperation().getTtsConfig(), name, getText());
} else if (in("Response", "JobsDetail", "Operation", "TtsTpl")) {
ParserMediaInfoUtils.ParseTtsTpl(jobsDetail.getOperation().getTtsTpl(), name, getText());
} else if (in("Response", "JobsDetail", "Operation", "VideoEnhance", "Transcode", "Container")) {
ParserMediaInfoUtils.ParseContainer(jobsDetail.getOperation().getVideoEnhance().getTrascode().getContainer(), name, getText());
} else if (in("Response", "JobsDetail", "Operation", "VideoEnhance", "Transcode", "Video")) {
ParserMediaInfoUtils.ParsingMediaVideo(jobsDetail.getOperation().getVideoEnhance().getTrascode().getVideo(), name, getText());
} else if (in("Response", "JobsDetail", "Operation", "VideoEnhance", "Transcode", "Audio")) {
ParserMediaInfoUtils.ParsingMediaAudio(jobsDetail.getOperation().getVideoEnhance().getTrascode().getAudio(), name, getText());
} else if (in("Response", "JobsDetail", "Operation", "VideoEnhance", "SuperResolution")) {
ParserMediaInfoUtils.ParsingSuperResolution(jobsDetail.getOperation().getVideoEnhance().getSuperResolution(), name, getText());
} else if (in("Response", "JobsDetail", "Operation", "VideoEnhance", "ColorEnhance")) {
ParserMediaInfoUtils.ParsingColorEnhance(jobsDetail.getOperation().getVideoEnhance().getColorEnhance(), name, getText());
} else if (in("Response", "JobsDetail", "Operation", "VideoEnhance", "MsSharpen")) {
ParserMediaInfoUtils.ParsingMsSharpen(jobsDetail.getOperation().getVideoEnhance().getMsSharpen(), name, getText());
} else if (in("Response", "JobsDetail", "Operation", "VideoEnhance", "SDRtoHDR")) {
ParserMediaInfoUtils.ParsingSDRtoHDR(jobsDetail.getOperation().getVideoEnhance().getSdrToHDR(), name, getText());
} else if (in("Response", "JobsDetail", "Operation", "VideoEnhance", "FrameEnhance")) {
ParserMediaInfoUtils.ParsingFrameEnhance(jobsDetail.getOperation().getVideoEnhance().getFrameEnhance(), name, getText());
} else if (in("Response", "JobsDetail", "Operation", "Transcode", "AudioMixArray")) {
ParserMediaInfoUtils.ParsingAudioMixArray(jobsDetail.getOperation().getTranscode().getAudioMixArray(), name, getText());
} else if (in("Response", "JobsDetail", "Operation", "Transcode", "AudioMixArray", "EffectConfig")) {
ParserMediaInfoUtils.ParsingEffectConfig(jobsDetail.getOperation().getTranscode().getAudioMixArray(), name, getText());
} else if (in("Response", "JobsDetail", "Operation", "Subtitles", "Subtitle")) {
ParserMediaInfoUtils.ParsingSubtitles(jobsDetail.getOperation().getSubtitles(), name, getText());
}
}
public MediaListJobResponse getResponse() {
return response;
}
}
public static class MediaQueueResponseHandler extends AbstractHandler {
MediaQueueResponse response = new MediaQueueResponse();
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("Response")) {
if ("RequestId".equalsIgnoreCase(name)) {
response.setRequestId(getText());
}
} else if (in("Response", "Queue")) {
MediaQueueObject queue = response.getQueue();
switch (name) {
case "QueueId":
queue.setQueueId(getText());
break;
case "Name":
queue.setName(getText());
break;
case "State":
queue.setState(getText());
break;
case "MaxSize":
queue.setMaxSize(getText());
break;
case "MaxConcurrent":
queue.setMaxConcurrent(getText());
break;
case "CreateTime":
queue.setCreateTime(getText());
break;
case "UpdateTime":
queue.setUpdateTime(getText());
break;
case "BucketId":
queue.setBucketId(getText());
break;
case "Category":
queue.setCategory(getText());
break;
}
} else if (in("Response", "Queue", "NotifyConfig")) {
MediaNotifyConfig notifyConfig = response.getQueue().getNotifyConfig();
switch (name) {
case "Url":
notifyConfig.setUrl(getText());
break;
case "Event":
notifyConfig.setEvent(getText());
break;
case "Type":
notifyConfig.setType(getText());
break;
case "State":
notifyConfig.setState(getText());
break;
}
}
}
public MediaQueueResponse getResponse() {
return response;
}
}
public static class MediaTemplateHandler extends AbstractHandler {
MediaTemplateResponse response = new MediaTemplateResponse();
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("Response")) {
if ("RequestId".equalsIgnoreCase(name)) {
response.setRequestId(getText());
}
} else if (in("Response", "Template")) {
MediaTemplateObject template = response.getTemplate();
switch (name) {
case "TemplateId":
template.setTemplateId(getText());
break;
case "Name":
template.setName(getText());
break;
case "Tag":
template.setTag(getText());
break;
case "State":
template.setState(getText());
break;
case "CreateTime":
template.setCreateTime(getText());
break;
case "UpdateTime":
template.setUpdateTime(getText());
break;
case "BucketId":
template.setBucketId(getText());
break;
case "Category":
template.setCategory(getText());
}
}
MediaTemplateTransTplObject transTpl = response.getTemplate().getTransTpl();
if (in("Response", "Template", "TransTpl", "Container")) {
MediaContainerObject container = transTpl.getContainer();
if ("Format".equalsIgnoreCase(name)) {
container.setFormat(getText());
}
} else if (in("Response", "Template", "TransTpl", "Video")) {
MediaVideoObject video = transTpl.getVideo();
ParserMediaInfoUtils.ParsingMediaVideo(video, name, getText());
} else if (in("Response", "Template", "TransTpl", "TimeInterval")) {
MediaTimeIntervalObject timeInterval = transTpl.getTimeInterval();
ParserMediaInfoUtils.ParsingMediaTimeInterval(timeInterval, name, getText());
} else if (in("Response", "Template", "TransTpl", "Audio")) {
MediaAudioObject audio = transTpl.getAudio();
ParserMediaInfoUtils.ParsingMediaAudio(audio, name, getText());
} else if (in("Response", "Template", "TransTpl", "TransConfig")) {
MediaTransConfigObject transConfig = transTpl.getTransConfig();
ParserMediaInfoUtils.ParsingTransConfig(transConfig, name, getText());
} else if (in("Response", "Template", "Snapshot")) {
MediaSnapshotObject snapshot = response.getTemplate().getSnapshot();
ParserMediaInfoUtils.ParsingSnapshot(snapshot, name, getText());
} else if (in("Response", "Template", "Watermark")) {
MediaWatermark watermark = response.getTemplate().getWatermark();
ParserMediaInfoUtils.ParsingWatermark(watermark, name, getText());
} else if (in("Response", "Template", "Watermark", "Text")) {
MediaWaterMarkText text = response.getTemplate().getWatermark().getText();
ParserMediaInfoUtils.ParsingWatermarkText(text, name, getText());
} else if (in("Response", "Template", "Watermark", "Image")) {
MediaWaterMarkImage image = response.getTemplate().getWatermark().getImage();
ParserMediaInfoUtils.ParsingWatermarkImage(image, name, getText());
} else if (in("Response", "Template", "VideoTargetRec")) {
VideoTargetRec videoTargetRec = response.getTemplate().getVideoTargetRec();
ParserMediaInfoUtils.ParsingVideoTargetRec(videoTargetRec, name, getText());
}
}
public MediaTemplateResponse getResponse() {
return response;
}
}
public static class SnapshotHandler extends AbstractHandler {
SnapshotResponse response = new SnapshotResponse();
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("Response", "Output")) {
MediaOutputObject output = response.getOutput();
if ("Bucket".equalsIgnoreCase(name)) {
output.setBucket(getText());
} else if ("Object".equalsIgnoreCase(name)) {
output.setObject(getText());
} else if ("Region".equalsIgnoreCase(name)) {
output.setRegion(getText());
}
}
}
public SnapshotResponse getResponse() {
return response;
}
}
public static class MediaTemplatesHandler extends AbstractHandler {
MediaListTemplateResponse response = new MediaListTemplateResponse();
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
if ("TemplateList".equalsIgnoreCase(name)) {
List templateList = response.getTemplateList();
templateList.add(new MediaTemplateObject());
} else if (in("Response", "TemplateList", "ConcatTemplate") && "ConcatFragment".equalsIgnoreCase(name)) {
List templateList = response.getTemplateList();
if (templateList != null && !templateList.isEmpty()) {
MediaTemplateObject mediaTemplateObject = templateList.get(templateList.size() - 1);
List concatFragmentList = mediaTemplateObject.getConcatTemplate().getConcatFragmentList();
concatFragmentList.add(new MediaConcatFragmentObject());
}
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("Response")) {
if ("RequestId".equalsIgnoreCase(name)) {
response.setRequestId(getText());
}
if ("TotalCount".equalsIgnoreCase(name)) {
response.setTotalCount(getText());
}
if ("PageNumber".equalsIgnoreCase(name)) {
response.setPageNumber(getText());
}
if ("PageSize".equalsIgnoreCase(name)) {
response.setPageSize(getText());
}
}
List templateList = response.getTemplateList();
MediaTemplateObject template;
if (templateList.size() != 0) {
template = templateList.get(templateList.size() - 1);
} else {
template = new MediaTemplateObject();
}
if (in("Response", "TemplateList")) {
switch (name) {
case "TemplateId":
template.setTemplateId(getText());
break;
case "Name":
template.setName(getText());
break;
case "Tag":
template.setTag(getText());
break;
case "State":
template.setState(getText());
break;
case "CreateTime":
template.setCreateTime(getText());
break;
case "UpdateTime":
template.setUpdateTime(getText());
break;
case "BucketId":
template.setBucketId(getText());
break;
case "Category":
template.setCategory(getText());
}
}
MediaTemplateTransTplObject transTpl = template.getTransTpl();
if (in("Response", "TemplateList", "TransTpl", "Container")) {
MediaContainerObject container = transTpl.getContainer();
if ("Format".equalsIgnoreCase(name)) {
container.setFormat(getText());
}
} else if (in("Response", "TemplateList", "TransTpl", "Video")) {
MediaVideoObject video = transTpl.getVideo();
ParserMediaInfoUtils.ParsingMediaVideo(video, name, getText());
} else if (in("Response", "TemplateList", "TransTpl", "TimeInterval")) {
MediaTimeIntervalObject timeInterval = transTpl.getTimeInterval();
ParserMediaInfoUtils.ParsingMediaTimeInterval(timeInterval, name, getText());
} else if (in("Response", "TemplateList", "TransTpl", "Audio")) {
MediaAudioObject audio = transTpl.getAudio();
ParserMediaInfoUtils.ParsingMediaAudio(audio, name, getText());
} else if (in("Response", "TemplateList", "TransTpl", "TransConfig")) {
MediaTransConfigObject transConfig = transTpl.getTransConfig();
ParserMediaInfoUtils.ParsingTransConfig(transConfig, name, getText());
} else if (in("Response", "TemplateList", "Snapshot")) {
MediaSnapshotObject snapshot = template.getSnapshot();
ParserMediaInfoUtils.ParsingSnapshot(snapshot, name, getText());
} else if (in("Response", "TemplateList", "Watermark")) {
MediaWatermark watermark = template.getWatermark();
ParserMediaInfoUtils.ParsingWatermark(watermark, name, getText());
} else if (in("Response", "TemplateList", "Watermark", "Text")) {
MediaWaterMarkText text = template.getWatermark().getText();
ParserMediaInfoUtils.ParsingWatermarkText(text, name, getText());
} else if (in("Response", "TemplateList", "Watermark", "Image")) {
MediaWaterMarkImage image = template.getWatermark().getImage();
ParserMediaInfoUtils.ParsingWatermarkImage(image, name, getText());
} else if (in("Response", "TemplateList", "ConcatTemplate", "ConcatFragment")) {
ParserMediaInfoUtils.ParseConcatFragment(getConcatFragment(template), name, getText());
} else if (in("Response", "TemplateList", "ConcatTemplate", "Audio")) {
ParserMediaInfoUtils.ParsingMediaAudio(template.getConcatTemplate().getAudio(), name, getText());
} else if (in("Response", "TemplateList", "ConcatTemplate", "Video")) {
ParserMediaInfoUtils.ParsingMediaVideo(template.getConcatTemplate().getVideo(), name, getText());
} else if (in("Response", "TemplateList", "ConcatTemplate", "Container")) {
if (name.equalsIgnoreCase("Format")) {
template.getConcatTemplate().getContainer().setFormat(getText());
}
} else if (in("Response", "TemplateList", "ConcatTemplate", "AudioMix")) {
ParserMediaInfoUtils.ParseAudioMix(template.getConcatTemplate().getAudioMix(), name, getText());
} else if (in("Response", "TemplateList", "ConcatTemplate", "VideoTargetRec")) {
ParserMediaInfoUtils.ParsingVideoTargetRec(template.getVideoTargetRec(), name, getText());
} else if (in("Response", "TemplateList", "TtsTpl")) {
ParserMediaInfoUtils.ParseTtsTpl(template.getTtsTpl(), name, getText());
} else if (in("Response", "TemplateList", "VideoEnhance", "Transcode", "Container")) {
ParserMediaInfoUtils.ParseContainer(template.getVideoEnhance().getTrascode().getContainer(), name, getText());
} else if (in("Response", "TemplateList", "VideoEnhance", "Transcode", "Video")) {
ParserMediaInfoUtils.ParsingMediaVideo(template.getVideoEnhance().getTrascode().getVideo(), name, getText());
} else if (in("Response", "TemplateList", "VideoEnhance", "Transcode", "Audio")) {
ParserMediaInfoUtils.ParsingMediaAudio(template.getVideoEnhance().getTrascode().getAudio(), name, getText());
} else if (in("Response", "TemplateList", "VideoEnhance", "SuperResolution")) {
ParserMediaInfoUtils.ParsingSuperResolution(template.getVideoEnhance().getSuperResolution(), name, getText());
} else if (in("Response", "TemplateList", "VideoEnhance", "ColorEnhance")) {
ParserMediaInfoUtils.ParsingColorEnhance(template.getVideoEnhance().getColorEnhance(), name, getText());
} else if (in("Response", "TemplateList", "VideoEnhance", "MsSharpen")) {
ParserMediaInfoUtils.ParsingMsSharpen(template.getVideoEnhance().getMsSharpen(), name, getText());
} else if (in("Response", "TemplateList", "VideoEnhance", "SDRtoHDR")) {
ParserMediaInfoUtils.ParsingSDRtoHDR(template.getVideoEnhance().getSdrToHDR(), name, getText());
}
}
public MediaConcatFragmentObject getConcatFragment(MediaTemplateObject template) {
List concatFragmentList = template.getConcatTemplate().getConcatFragmentList();
if (concatFragmentList != null && !concatFragmentList.isEmpty()) {
return concatFragmentList.get(concatFragmentList.size() - 1);
} else {
return new MediaConcatFragmentObject();
}
}
public MediaListTemplateResponse getResponse() {
return response;
}
}
public static class GenerateMediainfoHandler extends AbstractHandler {
MediaInfoResponse response = new MediaInfoResponse();
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
if (in("Response", "MediaInfo", "Stream") && "Video".equalsIgnoreCase(name)) {
List mediaInfoVideoList = response.getMediaInfo().getStream().getMediaInfoVideoList();
mediaInfoVideoList.add(new MediaInfoVideo());
}if (in("Response", "MediaInfo", "Stream") && "Audio".equalsIgnoreCase(name)) {
List mediaInfoAudioList = response.getMediaInfo().getStream().getMediaInfoAudioList();
mediaInfoAudioList.add(new MediaInfoAudio());
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
MediaInfoStream stream = response.getMediaInfo().getStream();
if (in("Response", "MediaInfo", "Format")) {
MediaFormat format = response.getMediaInfo().getFormat();
ParserMediaInfoUtils.ParsingMediaFormat(format, name, getText());
} else if (in("Response", "MediaInfo", "Stream", "Audio")) {
List mediaInfoAudioList = stream.getMediaInfoAudioList();
if (!mediaInfoAudioList.isEmpty()) {
MediaInfoAudio audio = stream.getMediaInfoAudioList().get(mediaInfoAudioList.size() - 1);
ParserMediaInfoUtils.ParsingStreamAudio(audio, name, getText());
}
} else if (in("Response", "MediaInfo", "Stream", "Subtitle")) {
MediaInfoSubtitle subtitle = stream.getSubtitle();
ParserMediaInfoUtils.ParsingSubtitle(subtitle, name, getText());
} else if (in("Response", "MediaInfo", "Stream", "Video")) {
List mediaInfoVideoList = stream.getMediaInfoVideoList();
if (!mediaInfoVideoList.isEmpty()) {
MediaInfoVideo video = stream.getMediaInfoVideoList().get(mediaInfoVideoList.size() - 1);
ParserMediaInfoUtils.ParsingMediaVideo(video, name, getText());
}
}
}
public MediaInfoResponse getResponse() {
return response;
}
}
public static class WorkflowExecutionsHandler extends AbstractHandler {
MediaWorkflowExecutionsResponse response = new MediaWorkflowExecutionsResponse();
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
if ("WorkflowExecutionList".equalsIgnoreCase(name)) {
List list = response.getWorkflowExecutionList();
list.add(new MediaWorkflowExecutionObject());
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("Response")) {
if ("RequestId".equalsIgnoreCase(name)) {
response.setRequestId(getText());
} else if ("NextToken".equalsIgnoreCase(name)) {
response.setNextToken(getText());
}
} else if (in("Response", "WorkflowExecutionList")) {
List list = response.getWorkflowExecutionList();
MediaWorkflowExecutionObject mediaWorkflowExecutionObject;
if (list.size() != 0) {
mediaWorkflowExecutionObject = list.get(list.size() - 1);
} else {
mediaWorkflowExecutionObject = new MediaWorkflowExecutionObject();
}
switch (name) {
case "RunId":
mediaWorkflowExecutionObject.setRunId(getText());
break;
case "WorkflowId":
mediaWorkflowExecutionObject.setWorkflowId(getText());
break;
case "Object":
mediaWorkflowExecutionObject.setObject(getText());
break;
case "CreateTime":
mediaWorkflowExecutionObject.setCreateTime(getText());
break;
case "State":
mediaWorkflowExecutionObject.setState(getText());
break;
}
}
}
public MediaWorkflowExecutionsResponse getResponse() {
return response;
}
}
public static class DocJobHandler extends AbstractHandler {
DocJobResponse response = new DocJobResponse();
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("Response", "JobsDetail")) {
DocJobDetail jobsDetail = response.getJobsDetail();
switch (name) {
case "Code":
jobsDetail.setCode(getText());
break;
case "CreationTime":
jobsDetail.setCreationTime(getText());
break;
case "EndTime":
jobsDetail.setEndTime(getText());
break;
case "JobId":
jobsDetail.setJobId(getText());
break;
case "Message":
jobsDetail.setMessage(getText());
break;
case "QueueId":
jobsDetail.setQueueId(getText());
break;
case "State":
jobsDetail.setState(getText());
break;
case "Tag":
jobsDetail.setTag(getText());
break;
default:
break;
}
} else if (in("Response", "JobsDetail", "Input")) {
if ("Object".equalsIgnoreCase(name)) {
response.getJobsDetail().getInput().setObject(getText());
}
} else if (in("Response", "JobsDetail", "Operation", "Output")) {
MediaOutputObject output = response.getJobsDetail().getOperation().getOutput();
switch (name) {
case "Bucket":
output.setBucket(getText());
break;
case "Object":
output.setObject(getText());
break;
case "Region":
output.setRegion(getText());
break;
default:
break;
}
} else if (in("Response", "JobsDetail", "Operation", "DocProcess")) {
DocProcessObject docProcess = response.getJobsDetail().getOperation().getDocProcessObject();
switch (name) {
case "Comments":
docProcess.setComments(getText());
break;
case "DocPassword":
docProcess.setDocPassword(getText());
break;
case "EndPage":
docProcess.setEndPage(getText());
break;
case "ImageParams":
docProcess.setImageParams(getText());
break;
case "PaperDirection":
docProcess.setPaperDirection(getText());
break;
case "Quality":
docProcess.setQuality(getText());
break;
case "SrcType":
docProcess.setSrcType(getText());
break;
case "StartPage":
docProcess.setStartPage(getText());
break;
case "TgtType":
docProcess.setTgtType(getText());
break;
case "Zoom":
docProcess.setZoom(getText());
break;
case "SheetId":
docProcess.setSheetId(getText());
break;
default:
break;
}
}
}
public DocJobResponse getResponse() {
return response;
}
}
public static class DescribeDocProcessJobHandler extends AbstractHandler {
DocJobResponse response = new DocJobResponse();
DocProcessPageInfo pageInfo = new DocProcessPageInfo();
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
if ("PageInfo".equalsIgnoreCase(name)) {
pageInfo = new DocProcessPageInfo();
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if(in( "Response")) {
if(name.equals("NonExistJobIds")) {
response.setNonExistJobIds(getText());
}
} else if (in("Response", "JobsDetail")) {
DocJobDetail jobsDetail = response.getJobsDetail();
switch (name) {
case "Code":
jobsDetail.setCode(getText());
break;
case "CreationTime":
jobsDetail.setCreationTime(getText());
break;
case "EndTime":
jobsDetail.setEndTime(getText());
break;
case "JobId":
jobsDetail.setJobId(getText());
break;
case "Message":
jobsDetail.setMessage(getText());
break;
case "QueueId":
jobsDetail.setQueueId(getText());
break;
case "State":
jobsDetail.setState(getText());
break;
case "Tag":
jobsDetail.setTag(getText());
break;
default:
break;
}
} else if (in("Response", "JobsDetail", "Input")) {
if ("Object".equalsIgnoreCase(name)) {
response.getJobsDetail().getInput().setObject(getText());
}
} else if (in("Response", "JobsDetail", "Operation", "DocProcess")) {
DocProcessObject docProcess = response.getJobsDetail().getOperation().getDocProcessObject();
switch (name) {
case "Comments":
docProcess.setComments(getText());
break;
case "DocPassword":
docProcess.setDocPassword(getText());
break;
case "EndPage":
docProcess.setEndPage(getText());
break;
case "ImageParams":
docProcess.setImageParams(getText());
break;
case "PaperDirection":
docProcess.setPaperDirection(getText());
break;
case "Quality":
docProcess.setQuality(getText());
break;
case "SrcType":
docProcess.setSrcType(getText());
break;
case "StartPage":
docProcess.setStartPage(getText());
break;
case "TgtType":
docProcess.setTgtType(getText());
break;
case "Zoom":
docProcess.setZoom(getText());
break;
case "SheetId":
docProcess.setSheetId(getText());
break;
default:
break;
}
} else if (in("Response", "JobsDetail", "Operation", "DocProcessResult")) {
DocProcessResult docProcessResult = response.getJobsDetail().getOperation().getDocProcessResult();
switch (name) {
case "FailPageCount":
docProcessResult.setFailPageCount(getText());
break;
case "SuccPageCount":
docProcessResult.setSuccPageCount(getText());
break;
case "TgtType":
docProcessResult.setTgtType(getText());
break;
case "TotalPageCount":
docProcessResult.setTotalPageCount(getText());
break;
case "TotalSheetCount":
docProcessResult.setTotalSheetCount(getText());
break;
default:
break;
}
} else if (in("Response", "JobsDetail", "Operation", "Output")) {
MediaOutputObject output = response.getJobsDetail().getOperation().getOutput();
switch (name) {
case "Bucket":
output.setBucket(getText());
break;
case "Object":
output.setObject(getText());
break;
case "Region":
output.setRegion(getText());
break;
default:
break;
}
} else if (in("Response", "JobsDetail", "Operation", "DocProcessResult", "PageInfo")) {
switch (name) {
case "PageNo":
pageInfo.setPageNo(getText());
break;
case "PicIndex":
pageInfo.setPicIndex(getText());
break;
case "PicNum":
pageInfo.setPicNum(getText());
break;
case "TgtUri":
pageInfo.setTgtUri(getText());
break;
case "X-SheetPics":
pageInfo.setxSheetPics(getText());
break;
default:
break;
}
}
if ("PageInfo".equalsIgnoreCase(name)) {
List pageInfoList = response.getJobsDetail().getOperation().getDocProcessResult().getDocProcessPageInfoList();
pageInfoList.add(pageInfo);
}
}
public DocJobResponse getResponse() {
return response;
}
}
public static class DescribeDocProcessJobsHandler extends AbstractHandler {
DocJobListResponse response = new DocJobListResponse();
DocJobDetail jobsDetail;
DocProcessPageInfo pageInfo;
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
if ("PageInfo".equalsIgnoreCase(name)) {
pageInfo = new DocProcessPageInfo();
} else if ("JobsDetail".equalsIgnoreCase(name)) {
jobsDetail = new DocJobDetail();
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if(in("Response", "NextToken")) {
response.setNextToken(getText());
} else if (in("Response", "JobsDetail")) {
switch (name) {
case "Code":
jobsDetail.setCode(getText());
break;
case "CreationTime":
jobsDetail.setCreationTime(getText());
break;
case "EndTime":
jobsDetail.setEndTime(getText());
break;
case "JobId":
jobsDetail.setJobId(getText());
break;
case "Message":
jobsDetail.setMessage(getText());
break;
case "QueueId":
jobsDetail.setQueueId(getText());
break;
case "State":
jobsDetail.setState(getText());
break;
case "Tag":
jobsDetail.setTag(getText());
break;
default:
break;
}
} else if (in("Response", "JobsDetail", "Input")) {
if ("Object".equalsIgnoreCase(name)) {
jobsDetail.getInput().setObject(getText());
}
} else if (in("Response", "JobsDetail", "Operation", "DocProcess")) {
DocProcessObject docProcess = jobsDetail.getOperation().getDocProcessObject();
switch (name) {
case "Comments":
docProcess.setComments(getText());
break;
case "DocPassword":
docProcess.setDocPassword(getText());
break;
case "EndPage":
docProcess.setEndPage(getText());
break;
case "ImageParams":
docProcess.setImageParams(getText());
break;
case "PaperDirection":
docProcess.setPaperDirection(getText());
break;
case "Quality":
docProcess.setQuality(getText());
break;
case "SrcType":
docProcess.setSrcType(getText());
break;
case "StartPage":
docProcess.setStartPage(getText());
break;
case "TgtType":
docProcess.setTgtType(getText());
break;
case "Zoom":
docProcess.setZoom(getText());
break;
case "SheetId":
docProcess.setSheetId(getText());
default:
break;
}
} else if (in("Response", "JobsDetail", "Operation", "DocProcessResult")) {
DocProcessResult docProcessResult = jobsDetail.getOperation().getDocProcessResult();
switch (name) {
case "FailPageCount":
docProcessResult.setFailPageCount(getText());
break;
case "SuccPageCount":
docProcessResult.setSuccPageCount(getText());
break;
case "TgtType":
docProcessResult.setTgtType(getText());
break;
case "TotalPageCount":
docProcessResult.setTotalPageCount(getText());
break;
case "TotalSheetCount":
docProcessResult.setTotalSheetCount(getText());
break;
default:
break;
}
} else if (in("Response", "JobsDetail", "Operation", "Output")) {
MediaOutputObject output = jobsDetail.getOperation().getOutput();
switch (name) {
case "Bucket":
output.setBucket(getText());
break;
case "Object":
output.setObject(getText());
break;
case "Region":
output.setRegion(getText());
break;
default:
break;
}
} else if (in("Response", "JobsDetail", "Operation", "DocProcessResult", "PageInfo")) {
switch (name) {
case "PageNo":
pageInfo.setPageNo(getText());
break;
case "PicIndex":
pageInfo.setPicIndex(getText());
break;
case "PicNum":
pageInfo.setPicNum(getText());
break;
case "TgtUri":
pageInfo.setTgtUri(getText());
break;
case "X-SheetPics":
pageInfo.setxSheetPics(getText());
break;
default:
break;
}
}
if ("PageInfo".equalsIgnoreCase(name)) {
List pageInfoList = jobsDetail.getOperation().getDocProcessResult().getDocProcessPageInfoList();
pageInfoList.add(pageInfo);
} else if ("JobsDetail".equalsIgnoreCase(name)) {
response.getDocJobDetailList().add(jobsDetail);
}
}
public DocJobListResponse getResponse() {
return response;
}
}
public static class ListDocBucketHandler extends AbstractHandler {
private DocBucketResponse response = new DocBucketResponse();
boolean isNew = true;
DocBucketObject bucketObject;
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
if ("DocBucketList".equals(name)) {
isNew = true;
}
if (isNew) {
bucketObject = new DocBucketObject();
isNew = false;
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("Response")) {
switch (name) {
case "RequestId":
response.setRequestId(getText());
break;
case "TotalCount":
response.setTotalCount(getText());
break;
case "PageNumber":
response.setPageNumber(getText());
break;
case "PageSize":
response.setPageSize(getText());
break;
default:
break;
}
} else if (in("Response", "DocBucketList")) {
switch (name) {
case "BucketId":
bucketObject.setBucketId(getText());
break;
case "Region":
bucketObject.setRegion(getText());
break;
case "CreateTime":
bucketObject.setCreateTime(getText());
break;
case "AliasBucketId":
bucketObject.setAliasBucketId(getText());
break;
case "Name":
bucketObject.setName(getText());
break;
default:
break;
}
}
if ("DocBucketList".equals(name) && !isNew) {
response.getDocBucketObjectList().add(bucketObject);
bucketObject = null;
}
}
public DocBucketResponse getResponse() {
return response;
}
}
public static class ImageAuditingHandler extends AbstractHandler {
private ImageAuditingResponse response = new ImageAuditingResponse();
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("RecognitionResult")) {
switch (name) {
case "JobId":
response.setJobId(getText());
break;
case "CompressionResult":
response.setCompressionResult(getText());
break;
case "Result":
response.setResult(getText());
break;
case "Label":
response.setLabel(getText());
break;
case "Category":
response.setCategory(getText());
break;
case "SubLabel":
response.setSubLabel(getText());
break;
case "Score":
response.setScore(getText());
break;
case "Text":
response.setText(getText());
break;
case "DataId":
response.setDataId(getText());
break;
case "Object":
response.setObject(getText());
break;
case "State":
response.setState(getText());
break;
case "forbidState":
response.setForbidState(getText());
break;
default:
break;
}
} else if (in("RecognitionResult", "PornInfo")) {
parseInfo(response.getPornInfo(), name, getText());
} else if (in("RecognitionResult", "PoliticsInfo")) {
parseInfo(response.getPoliticsInfo(), name, getText());
} else if (in("RecognitionResult", "TerroristInfo") || in("RecognitionResult", "TerrorismInfo")) {
parseInfo(response.getTerroristInfo(), name, getText());
} else if (in("RecognitionResult", "AdsInfo")) {
parseInfo(response.getAdsInfo(), name, getText());
} else if (in("RecognitionResult", "TeenagerInfo")) {
parseInfo(response.getTeenagerInfo(), name, getText());
} else if (in("RecognitionResult", "UserInfo")) {
ParserMediaInfoUtils.ParsingAuditingUserInfo(response.getUserInfo(), name, getText());
} else if (in("RecognitionResult", "PornInfo","OcrResults")) {
ParserMediaInfoUtils.parseOrcInfo(response.getPornInfo().getOcrResults(), name, getText());
} else if (in("RecognitionResult", "PoliticsInfo","OcrResults")) {
ParserMediaInfoUtils.parseOrcInfo(response.getPoliticsInfo().getOcrResults(), name, getText());
} else if (in("RecognitionResult", "TerroristInfo","OcrResults") || in("RecognitionResult", "TerrorismInfo","OcrResults")) {
ParserMediaInfoUtils.parseOrcInfo(response.getTerroristInfo().getOcrResults(), name, getText());
} else if (in("RecognitionResult", "AdsInfo","OcrResults")) {
ParserMediaInfoUtils.parseOrcInfo(response.getAdsInfo().getOcrResults(), name, getText());
} else if (in("RecognitionResult", "TeenagerInfo","OcrResults")) {
ParserMediaInfoUtils.parseOrcInfo(response.getTeenagerInfo().getOcrResults(), name, getText());
}
}
private void parseInfo(AudtingCommonInfo obj, String name, String value) {
switch (name) {
case "Code":
obj.setCode(value);
break;
case "Msg":
obj.setMsg(getText());
break;
case "HitFlag":
obj.setHitFlag(getText());
break;
case "Score":
obj.setScore(getText());
break;
case "Label":
obj.setLabel(getText());
break;
default:
break;
}
}
public ImageAuditingResponse getResponse() {
return response;
}
}
public static class DescribeVideoAuditingJobHandler extends AbstractHandler {
private VideoAuditingResponse response = new VideoAuditingResponse();
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
List snapshotList = response.getJobsDetail().getSnapshotList();
List audioSectionList = response.getJobsDetail().getAudioSectionList();
if (in("Response", "JobsDetail") && "Snapshot".equals(name)) {
snapshotList.add(new SnapshotInfo());
}
if (in("Response", "JobsDetail") && "AudioSection".equals(name)) {
audioSectionList.add(new AudioSectionInfo());
} else if (in("Response", "JobsDetail", "ListInfo") && "ListResults".equals(name)) {
response.getJobsDetail().getListInfo().getListResults().add(new ListResult());
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
List snapshotList = response.getJobsDetail().getSnapshotList();
List audioSectionList = response.getJobsDetail().getAudioSectionList();
SnapshotInfo snapshotInfo = new SnapshotInfo();
AudioSectionInfo audioSectionInfo = new AudioSectionInfo();
if (snapshotList == null || !snapshotList.isEmpty()) {
snapshotInfo = snapshotList.get(snapshotList.size() - 1);
}
if (audioSectionList == null || !audioSectionList.isEmpty()) {
audioSectionInfo = audioSectionList.get(audioSectionList.size() - 1);
}
if (in("Response", "JobsDetail")) {
AuditingJobsDetail jobsDetail = response.getJobsDetail();
switch (name) {
case "Code":
jobsDetail.setCode(getText());
break;
case "Message":
jobsDetail.setMessage(getText());
break;
case "JobId":
jobsDetail.setJobId(getText());
break;
case "State":
jobsDetail.setState(getText());
break;
case "CreationTime":
jobsDetail.setCreationTime(getText());
break;
case "Object":
jobsDetail.setObject(getText());
break;
case "SnapshotCount":
jobsDetail.setSnapshotCount(getText());
break;
case "Result":
jobsDetail.setResult(getText());
break;
case "Url":
jobsDetail.setUrl(getText());
break;
case "DataId":
jobsDetail.setDataId(getText());
break;
case "Label":
jobsDetail.setLabel(getText());
break;
case "ForbidState":
jobsDetail.setForbidState(getText());
break;
case "Type":
jobsDetail.setType(getText());
break;
default:
break;
}
} else if (in("Response", "JobsDetail", "PornInfo")) {
ParserMediaInfoUtils.ParsingAuditingCommonInfo(response.getJobsDetail().getPornInfo(), name, getText());
} else if (in("Response", "JobsDetail", "PoliticsInfo")) {
ParserMediaInfoUtils.ParsingAuditingCommonInfo(response.getJobsDetail().getPoliticsInfo(), name, getText());
} else if (in("Response", "JobsDetail", "TerrorismInfo")) {
ParserMediaInfoUtils.ParsingAuditingCommonInfo(response.getJobsDetail().getTerroristInfo(), name, getText());
} else if (in("Response", "JobsDetail", "AdsInfo")) {
ParserMediaInfoUtils.ParsingAuditingCommonInfo(response.getJobsDetail().getAdsInfo(), name, getText());
} else if (in("Response", "JobsDetail", "TeenagerInfo")) {
ParserMediaInfoUtils.ParsingAuditingCommonInfo(response.getJobsDetail().getTeenagerInfo(), name, getText());
} else if (in("Response", "JobsDetail", "Snapshot", "PornInfo")) {
ParserMediaInfoUtils.ParsingAuditingCommonInfo(snapshotInfo.getPornInfo(), name, getText());
} else if (in("Response", "JobsDetail", "Snapshot", "PoliticsInfo")) {
ParserMediaInfoUtils.ParsingAuditingCommonInfo(snapshotInfo.getPoliticsInfo(), name, getText());
} else if (in("Response", "JobsDetail", "Snapshot", "TerrorismInfo")) {
ParserMediaInfoUtils.ParsingAuditingCommonInfo(snapshotInfo.getTerroristInfo(), name, getText());
} else if (in("Response", "JobsDetail", "Snapshot", "AdsInfo")) {
ParserMediaInfoUtils.ParsingAuditingCommonInfo(snapshotInfo.getAdsInfo(), name, getText());
} else if (in("Response", "JobsDetail", "Snapshot", "TeenagerInfo")) {
ParserMediaInfoUtils.ParsingAuditingCommonInfo(snapshotInfo.getTeenagerInfo(), name, getText());
} else if (in("Response", "JobsDetail", "AudioSection", "TerrorismInfo")) {
ParserMediaInfoUtils.ParsingAuditingCommonInfo(audioSectionInfo.getTerroristInfo(), name, getText());
} else if (in("Response", "JobsDetail", "AudioSection", "PornInfo")) {
ParserMediaInfoUtils.ParsingAuditingCommonInfo(audioSectionInfo.getPornInfo(), name, getText());
} else if (in("Response", "JobsDetail", "AudioSection", "PoliticsInfo")) {
ParserMediaInfoUtils.ParsingAuditingCommonInfo(audioSectionInfo.getPoliticsInfo(), name, getText());
} else if (in("Response", "JobsDetail", "AudioSection", "AdsInfo")) {
ParserMediaInfoUtils.ParsingAuditingCommonInfo(audioSectionInfo.getAdsInfo(), name, getText());
} else if (in("Response", "JobsDetail", "Snapshot")) {
ParserMediaInfoUtils.parseSnapshotInfo(snapshotInfo, name, getText());
} else if (in("Response", "JobsDetail", "AudioSection")) {
ParserMediaInfoUtils.parseAudioSection(audioSectionInfo, name, getText());
} else if (in("Response", "JobsDetail", "UserInfo")) {
ParserMediaInfoUtils.ParsingAuditingUserInfo(response.getJobsDetail().getUserInfo(), name, getText());
} else if (in("Response", "JobsDetail", "ListInfo", "ListResults")) {
List listResults = response.getJobsDetail().getListInfo().getListResults();
if (!listResults.isEmpty()) {
ParserMediaInfoUtils.parsingAuditingListResultInfo(listResults.get(listResults.size() - 1), name, getText());
}
} else if (in("Response", "JobsDetail", "MaskInfo", "LiveInfo")) {
ParserMediaInfoUtils.ParsingAuditingLiveInfo(response.getJobsDetail().getMaskInfo().getAuditingLiveInfo(), name, getText());
} else if (in("Response", "JobsDetail", "MaskInfo", "RecordInfo")) {
ParserMediaInfoUtils.ParsingAuditingRecordInfo(response.getJobsDetail().getMaskInfo().getRecordInfo(), name, getText());
} else if (in("Response", "JobsDetail", "MaskInfo", "RecordInfo", "Output")) {
ParserMediaInfoUtils.ParsingAuditingOutput(response.getJobsDetail().getMaskInfo().getRecordInfo().getOutput(), name, getText());
}
}
public VideoAuditingResponse getResponse() {
return response;
}
public void setResponse(VideoAuditingResponse response) {
this.response = response;
}
}
public static class CreateVideoAuditingJobHandler extends AbstractHandler {
private VideoAuditingResponse response = new VideoAuditingResponse();
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("Response", "JobsDetail")) {
AuditingJobsDetail jobsDetail = response.getJobsDetail();
switch (name) {
case "JobId":
jobsDetail.setJobId(getText());
break;
case "State":
jobsDetail.setState(getText());
break;
case "CreationTime":
jobsDetail.setCreationTime(getText());
break;
case "DataId":
jobsDetail.setDataId(getText());
break;
case "Object":
jobsDetail.setObject(getText());
case "Url":
jobsDetail.setUrl(getText());
break;
default:
break;
}
}
}
public VideoAuditingResponse getResponse() {
return response;
}
public void setResponse(VideoAuditingResponse response) {
this.response = response;
}
}
public static class DescribeAudioAuditingJobHandler extends AbstractHandler {
private AudioAuditingResponse response = new AudioAuditingResponse();
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
List sectionList = response.getJobsDetail().getSectionList();
if (in("Response", "JobsDetail") && "Section".equals(name)) {
sectionList.add(new SectionInfo());
} else if (in("Response", "JobsDetail", "ListInfo") && "ListResults".equals(name)) {
response.getJobsDetail().getListInfo().getListResults().add(new ListResult());
} else if (in("Response", "JobsDetail", "Section") && "LanguageResults".equals(name)) {
if (!sectionList.isEmpty()) {
SectionInfo sectionInfo = sectionList.get(sectionList.size() - 1);
List languageResult = sectionInfo.getLanguageResult();
languageResult.add(new LanguageResult());
}
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("Response", "JobsDetail")) {
AuditingJobsDetail jobsDetail = response.getJobsDetail();
switch (name) {
case "Code":
jobsDetail.setCode(getText());
break;
case "Message":
jobsDetail.setMessage(getText());
break;
case "JobId":
jobsDetail.setJobId(getText());
break;
case "State":
jobsDetail.setState(getText());
break;
case "CreationTime":
jobsDetail.setCreationTime(getText());
break;
case "Object":
jobsDetail.setObject(getText());
break;
case "Url":
jobsDetail.setUrl(getText());
break;
case "Result":
jobsDetail.setResult(getText());
break;
case "AudioText":
jobsDetail.setAudioText(getText());
break;
case "DataId":
jobsDetail.setDataId(getText());
break;
case "Label":
jobsDetail.setLabel(getText());
break;
case "SubLabel":
jobsDetail.setSubLabel(getText());
break;
case "ForbidState":
jobsDetail.setForbidState(getText());
break;
default:
break;
}
} else if (in("Response", "JobsDetail", "PornInfo")) {
ParserMediaInfoUtils.ParsingAuditingCommonInfo(response.getJobsDetail().getPornInfo(), name, getText());
} else if (in("Response", "JobsDetail", "PoliticsInfo")) {
ParserMediaInfoUtils.ParsingAuditingCommonInfo(response.getJobsDetail().getPoliticsInfo(), name, getText());
} else if (in("Response", "JobsDetail", "TerrorismInfo")) {
ParserMediaInfoUtils.ParsingAuditingCommonInfo(response.getJobsDetail().getTerroristInfo(), name, getText());
} else if (in("Response", "JobsDetail", "AdsInfo")) {
ParserMediaInfoUtils.ParsingAuditingCommonInfo(response.getJobsDetail().getAdsInfo(), name, getText());
} else if (in("Response", "JobsDetail", "TeenagerInfo")) {
ParserMediaInfoUtils.ParsingAuditingCommonInfo(response.getJobsDetail().getTeenagerInfo(), name, getText());
} else if (in("Response", "JobsDetail", "Section", "PornInfo")) {
List sectionList = response.getJobsDetail().getSectionList();
SectionInfo sectionInfo = sectionList.get(sectionList.size() - 1);
ParserMediaInfoUtils.ParsingAuditingCommonInfo(sectionInfo.getPornInfo(), name, getText());
} else if (in("Response", "JobsDetail", "Section", "PoliticsInfo")) {
List sectionList = response.getJobsDetail().getSectionList();
SectionInfo sectionInfo = sectionList.get(sectionList.size() - 1);
ParserMediaInfoUtils.ParsingAuditingCommonInfo(sectionInfo.getPoliticsInfo(), name, getText());
} else if (in("Response", "JobsDetail", "Section", "TerrorismInfo")) {
List sectionList = response.getJobsDetail().getSectionList();
SectionInfo sectionInfo = sectionList.get(sectionList.size() - 1);
ParserMediaInfoUtils.ParsingAuditingCommonInfo(sectionInfo.getTerroristInfo(), name, getText());
} else if (in("Response", "JobsDetail", "Section", "AdsInfo")) {
List sectionList = response.getJobsDetail().getSectionList();
SectionInfo sectionInfo = sectionList.get(sectionList.size() - 1);
ParserMediaInfoUtils.ParsingAuditingCommonInfo(sectionInfo.getAdsInfo(), name, getText());
} else if (in("Response", "JobsDetail", "Section", "TeenagerInfo")) {
List sectionList = response.getJobsDetail().getSectionList();
SectionInfo sectionInfo = sectionList.get(sectionList.size() - 1);
ParserMediaInfoUtils.ParsingAuditingCommonInfo(sectionInfo.getTeenagerInfo(), name, getText());
} else if (in("Response", "JobsDetail", "Section")) {
List sectionList = response.getJobsDetail().getSectionList();
SectionInfo sectionInfo = sectionList.get(sectionList.size() - 1);
ParserMediaInfoUtils.parseSectionInfo(sectionInfo, name, getText());
} else if (in("Response", "JobsDetail", "UserInfo")) {
ParserMediaInfoUtils.ParsingAuditingUserInfo(response.getJobsDetail().getUserInfo(), name, getText());
} else if (in("Response", "JobsDetail", "ListInfo", "ListResults")) {
List listResults = response.getJobsDetail().getListInfo().getListResults();
if (!listResults.isEmpty()) {
ParserMediaInfoUtils.parsingAuditingListResultInfo(listResults.get(listResults.size() - 1), name, getText());
}
} else if (in("Response", "JobsDetail", "Section", "LanguageResults")) {
List sectionList = response.getJobsDetail().getSectionList();
SectionInfo sectionInfo = sectionList.get(sectionList.size() - 1);
List languageResults = sectionInfo.getLanguageResult();
if (!languageResults.isEmpty()) {
LanguageResult result = languageResults.get(languageResults.size() - 1);
ParserMediaInfoUtils.parseLanguageResult(result, name, getText());
}
}
}
public AudioAuditingResponse getResponse() {
return response;
}
public void setResponse(AudioAuditingResponse response) {
this.response = response;
}
}
public static class CreateAudioAuditingJobHandler extends AbstractHandler {
private AudioAuditingResponse response = new AudioAuditingResponse();
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
}
@Override
protected void doEndElement(String uri, String name, String qName) {
if (in("Response", "JobsDetail")) {
AuditingJobsDetail jobsDetail = response.getJobsDetail();
switch (name) {
case "JobId":
jobsDetail.setJobId(getText());
break;
case "State":
jobsDetail.setState(getText());
break;
case "CreationTime":
jobsDetail.setCreationTime(getText());
break;
case "DataId":
jobsDetail.setDataId(getText());
break;
case "Object":
jobsDetail.setObject(getText());
case "Url":
jobsDetail.setUrl(getText());
break;
default:
break;
}
}
}
public AudioAuditingResponse getResponse() {
return response;
}
public void setResponse(AudioAuditingResponse response) {
this.response = response;
}
}
public static class ImageLabelHandler extends AbstractHandler {
private ImageLabelResponse response = new ImageLabelResponse();
@Override
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
if ("Labels".equalsIgnoreCase(name)) {
response.getRecognitionResult().add(new Label());
}
}
@Override
protected void doEndElement(String uri, String name, String qName) {
List
© 2015 - 2024 Weber Informatics LLC | Privacy Policy