/* See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* Esri Inc. licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License 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.
*/
package com.esri.gpt.catalog.publication;
import com.esri.gpt.framework.context.RequestContext;
import com.esri.gpt.framework.jsf.MessageBroker;
import com.esri.gpt.framework.http.HttpClientRequest;
import com.esri.gpt.framework.security.principal.Publisher;
import java.util.ArrayList;
import java.util.List;
/**
* Holds context properties and summary information for a resource processing request.
*/
public class ProcessingContext {
/** instance variables ====================================================== */
private HttpClientRequest httpClient;
private Exception lastException;
private MessageBroker messageBroker;
private int numberCreated = 0;
private int numberDeleted = 0;
private int numberFailed = 0;
private int numberReplaced = 0;
private int numberUnchanged = 0;
private int numberValidated = 0;
private List<ProcessedRecord> processedRecords = new ArrayList<ProcessedRecord>();
private Publisher publisher;
private RequestContext requestContext;
private PublicationRecord template;
private boolean validateOnly = false;
private boolean wasSingleSource = false;
/** constructors ============================================================ */
/** Default constructor. */
public ProcessingContext() {}
/**
* Constrcuts a processing context.
* @param requestContext the underlying request context
* @param publisher the publisher associated with the processing request
* @param httpClient an HTTP client suitable for outbound requests
* @param template the template associated with new documents (can be null)
* @param validateOnly true if this is a validate only request
*/
public ProcessingContext(RequestContext requestContext, Publisher publisher,
HttpClientRequest httpClient, PublicationRecord template, boolean validateOnly) {
this.setRequestContext(requestContext);
this.setPublisher(publisher);
this.setHttpClient(httpClient);
this.setTemplate(template);
this.setValidateOnly(validateOnly);
}
/** properties ============================================================== */
/**
* Gets an HTTP client suitable for outbound requests.
* @return the HTTP client
*/
public HttpClientRequest getHttpClient() {
return this.httpClient;
}
/**
* Sets an HTTP client suitable for outbound requests.
* @param client the HTTP client
*/
public void setHttpClient(HttpClientRequest client) {
this.httpClient = client;
}
/**
* Gets the last exception encountered (if applicable).
* @return the last exception
*/
public Exception getLastException() {
return this.lastException;
}
/**
* Sets the last exception encountered (if applicable).
* @param e the last exception
*/
public void setLastException(Exception e) {
this.lastException = e;
}
/**
* Gets the resource bundle message broker.
* @return the message broker
*/
public MessageBroker getMessageBroker() {
return this.messageBroker;
}
/**
* Sets the resource bundle message broker.
* @param messageBroker the message broker
*/
public void setMessageBroker(MessageBroker messageBroker) {
this.messageBroker = messageBroker;
}
/**
* Gets the number of documents created.
* @return the number created
*/
public int getNumberCreated() {
return this.numberCreated;
}
/**
* Sets the number of documents created.
* @param number the number created
*/
public void setNumberCreated(int number) {
this.numberCreated = number;
}
/**
* Gets the number of documents deleted.
* @return the number deleted
*/
public int getNumberDeleted() {
return this.numberDeleted;
}
/**
* Sets the number of documents deleted.
* @param number the number deleted
*/
public void setNumberDeteted(int number) {
this.numberDeleted = number;
}
/**
* Gets the number of documents that failed.
* @return the number that failed
*/
public int getNumberFailed() {
return this.numberFailed;
}
/**
* Sets the number of documents that failed.
* @param number the number that failed
*/
public void setNumberFailed(int number) {
this.numberFailed = number;
}
/**
* Gets the number of documents replaced.
* @return the number replaced
*/
public int getNumberReplaced() {
return this.numberReplaced;
}
/**
* Sets the number of documents replaced.
* @param number the number replaced
*/
public void setNumberReplaced(int number) {
this.numberReplaced = number;
}
/**
* Gets the number of documents unchanged.
* @return the number unchanged
*/
public int getNumberUnchanged() {
return this.numberUnchanged;
}
/**
* Sets the number of documents unchanged.
* @param number the number unchanged
*/
public void setNumberUnchanged(int number) {
this.numberUnchanged = number;
}
/**
* Gets the number of documents validated.
* @return the number validated
*/
public int getNumberValidated() {
return this.numberValidated;
}
/**
* Sets the number of documents validated.
* @param number the number validated
*/
public void setNumberValidated(int number) {
this.numberValidated = number;
}
/**
* Gets the list of records processed during this request.
* @return the list of processed records
*/
public List<ProcessedRecord> getProcessedRecords() {
return this.processedRecords;
}
/**
* Gets publisher associated with the processing request.
* @return the publisher
*/
public Publisher getPublisher() {
return this.publisher;
}
/**
* Sets publisher associated with the processing request.
* @param publisher the publisher
*/
public void setPublisher(Publisher publisher) {
this.publisher = publisher;
}
/**
* Gets the underlying request context.
* @return the request context
*/
public RequestContext getRequestContext() {
return this.requestContext;
}
/**
* Sets the underlying request context.
* @param requestContext the request context
*/
public void setRequestContext(RequestContext requestContext) {
this.requestContext = requestContext;
}
/**
* Gets the template associated with new documents.
* @return the new document template
*/
public PublicationRecord getTemplate() {
return this.template;
}
/**
* Sets the template associated with new documents.
* @param template the new document template
*/
public void setTemplate(PublicationRecord template) {
this.template = template;
}
/**
* Gets the status indicating if this is a validate only request.
* @return true if this is a validate only request
*/
public boolean getValidateOnly() {
return this.validateOnly;
}
/**
* Sets ets the status indicating if this is a validate only request.
* @param wasValidateOnly true if this is a validate only request
*/
public void setValidateOnly(boolean wasValidateOnly) {
this.validateOnly = wasValidateOnly;
}
/**
* Gets the status indicating if processing occurred against a single source document.
* @return true if processing occurred against a single source document
*/
public boolean getWasSingleSource() {
return this.wasSingleSource;
}
/**
* Sets the status indicating if processing occurred against a single source document.
* @param wasSingleSource true if processing occurred against a single source document
*/
public void setWasSingleSource(boolean wasSingleSource) {
this.wasSingleSource = wasSingleSource;
}
/** methods ================================================================= */
/**
* Increments the number of documents created.
*/
public void incrementNumberCreated() {
this.numberCreated++;
}
/**
* Increments the number of documents deleted.
*/
public void incrementNumberDeleted() {
this.numberDeleted++;
}
/**
* Increments the number of documents that failed.
*/
public void incrementNumberFailed() {
this.numberFailed++;
}
/**
* Increments the number of documents replaced.
*/
public void incrementNumberReplaced() {
this.numberReplaced++;
}
/**
* Increments the number of documents unchanged.
*/
public void incrementNumberUnchanged() {
this.numberUnchanged++;
}
/**
* Increments the number of documents validated.
*/
public void incrementNumberValidated() {
this.numberValidated++;
}
}