/* 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.control.webharvest.engine; import com.esri.gpt.framework.util.Val; import java.util.ArrayList; import java.util.Collection; /** * Report record. */ class ReportRecord { /** source URI */ private String sourceUri = ""; /** validated */ private boolean validated; /** published */ private boolean published; /** collection of errors */ private Collection<String> errors = new ArrayList<String>(); /** * Creates instance of the record. */ public ReportRecord() { } /** * Creates instance of the record. * @param sourceUri source URI * @param validated validated flag * @param published published flag * @param errors errors */ public ReportRecord(String sourceUri, boolean validated, boolean published, Collection<String> errors) { setSourceUri(sourceUri); setValidated(validated); setPublished(published); setErrors(errors); } /** * Gets source URI. * @return source URI */ public String getSourceUri() { return sourceUri; } /** * Sets source URI. * @param sourceUri source URI */ public void setSourceUri(String sourceUri) { this.sourceUri = Val.chkStr(sourceUri); } /** * Gets validated flag. * @return validated flag */ public boolean getValidated() { return validated; } /** * Sets validated flag. * @param validated validated flag */ public void setValidated(boolean validated) { this.validated = validated; } /** * Gets published flag. * @return published flag */ public boolean getPublished() { return published; } /** * Sets published flag. * @param published published flag */ public void setPublished(boolean published) { this.published = published; } /** * Gets collection of errors. * @return collection of errors */ public Collection<String> getErrors() { return errors; } /** * Sets collection of errors. * @param errors collection of errors */ public void setErrors(Collection<String> errors) { this.errors = errors != null ? errors : new ArrayList<String>(); } /** * Provides XML snippet of the record. * @return XML snippet of the record */ public String toXmlSnippet() { StringBuilder sb = new StringBuilder(); sb.append("<record>\n"); sb.append("<sourceUri>" +Val.escapeXml(sourceUri)+ "</sourceUri>\n"); if (!validated) { sb.append("<validate>\n"); sb.append("<status>failed</status>\n"); for (String error : errors) { sb.append("<error>" +Val.escapeXml(error)+ "</error>\n"); } sb.append("</validate>\n"); } else { sb.append("<validate><status>ok</status></validate>\n"); if (!published) { sb.append("<publish>\n"); sb.append("<status>failed</status>\n"); for (String error : errors) { sb.append("<error>" +Val.escapeXml(error)+ "</error>\n"); } sb.append("</publish>\n"); } else { sb.append("<publish><status>ok</status></publish>\n"); } } sb.append("</record>\n"); return sb.toString(); } }