/* * Copyright 2011 by Graz University of Technology, Austria * MOCCA has been developed by the E-Government Innovation Center EGIZ, a joint * initiative of the Federal Chancellery Austria and Graz University of Technology. * * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by * the European Commission - subsequent versions of the EUPL (the "Licence"); * You may not use this work except in compliance with the Licence. * You may obtain a copy of the Licence at: * http://www.osor.eu/eupl/ * * Unless required by applicable law or agreed to in writing, software * distributed under the Licence is distributed on an "AS IS" basis, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the Licence for the specific language governing permissions and * limitations under the Licence. * * This product combines work with different licenses. See the "NOTICE" text * file for details on the various modules and licenses. * The "NOTICE" text file is part of the distribution. Any derivative works * that you distribute must include a readable copy of the "NOTICE" text file. */ package at.gv.egiz.bku.slcommands.impl; import java.util.Locale; import javax.xml.transform.Result; import javax.xml.transform.Templates; import at.gv.egiz.bku.slcommands.ErrorResult; import at.gv.egiz.bku.slexceptions.SLException; /** * This class implements the security layer result ErrorResponse. * * @author mcentner */ public class ErrorResultImpl extends SLResultImpl implements ErrorResult { /** * The exception containing information provided in the ErrorResponse. */ protected SLException slException; /** * The locale to be used for rendering an ErrorResponse. */ protected Locale locale; /** * Creates a new instance of this ErrorResultImpl with the given * slException containing information provided in the * ErrorResponse and the locale for rendering * the ErrorResponse. * * @param slException the exception * @param locale the locale */ public ErrorResultImpl(SLException slException, Locale locale) { this.slException = slException; this.locale = locale; } @Override public void writeTo(Result result, Templates templates, boolean fragment) { if (locale == null) { writeErrorTo(slException, result, templates, fragment); } else { writeErrorTo(slException, result, templates, locale, fragment); } } @Override public int getErrorCode() { if (slException != null) { return slException.getErrorCode(); } else { return -1; } } @Override public String getInfo() { if (slException != null) { return slException.getLocalizedMessage(locale); } else { return null; } } }