diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2011-09-14 23:54:46 +0200 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2011-09-14 23:54:46 +0200 |
| commit | ccaab5d0b312b28ab15833ab8f11dd809ec93aab (patch) | |
| tree | 4f80418eeb724a0c15ec6c80621e647b63a1a826 /src/org/apache/commons/lang3/exception/DefaultExceptionContext.java | |
| parent | 4f7c67407019de18fd53b640edb9682a346fbfef (diff) | |
| download | cgeo-ccaab5d0b312b28ab15833ab8f11dd809ec93aab.zip cgeo-ccaab5d0b312b28ab15833ab8f11dd809ec93aab.tar.gz cgeo-ccaab5d0b312b28ab15833ab8f11dd809ec93aab.tar.bz2 | |
Convert to Unix end-of-line format
Diffstat (limited to 'src/org/apache/commons/lang3/exception/DefaultExceptionContext.java')
| -rw-r--r-- | src/org/apache/commons/lang3/exception/DefaultExceptionContext.java | 316 |
1 files changed, 158 insertions, 158 deletions
diff --git a/src/org/apache/commons/lang3/exception/DefaultExceptionContext.java b/src/org/apache/commons/lang3/exception/DefaultExceptionContext.java index b8128ec..fc5dc52 100644 --- a/src/org/apache/commons/lang3/exception/DefaultExceptionContext.java +++ b/src/org/apache/commons/lang3/exception/DefaultExceptionContext.java @@ -1,158 +1,158 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF 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 org.apache.commons.lang3.exception;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.tuple.ImmutablePair;
-import org.apache.commons.lang3.tuple.Pair;
-
-/**
- * Default implementation of the context storing the label-value pairs for contexted exceptions.
- * <p>
- * This implementation is serializable, however this is dependent on the values that
- * are added also being serializable.
- * </p>
- *
- * @see ContextedException
- * @see ContextedRuntimeException
- * @since 3.0
- */
-public class DefaultExceptionContext implements ExceptionContext, Serializable {
-
- /** The serialization version. */
- private static final long serialVersionUID = 20110706L;
-
- /** The list storing the label-data pairs. */
- private final List<Pair<String, Object>> contextValues = new ArrayList<Pair<String,Object>>();
-
- /**
- * {@inheritDoc}
- */
- public DefaultExceptionContext addContextValue(String label, Object value) {
- contextValues.add(new ImmutablePair<String, Object>(label, value));
- return this;
- }
-
- /**
- * {@inheritDoc}
- */
- public DefaultExceptionContext setContextValue(String label, Object value) {
- for (final Iterator<Pair<String, Object>> iter = contextValues.iterator(); iter.hasNext();) {
- final Pair<String, Object> p = iter.next();
- if (StringUtils.equals(label, p.getKey())) {
- iter.remove();
- }
- }
- addContextValue(label, value);
- return this;
- }
-
- /**
- * {@inheritDoc}
- */
- public List<Object> getContextValues(String label) {
- final List<Object> values = new ArrayList<Object>();
- for (final Pair<String, Object> pair : contextValues) {
- if (StringUtils.equals(label, pair.getKey())) {
- values.add(pair.getValue());
- }
- }
- return values;
- }
-
- /**
- * {@inheritDoc}
- */
- public Object getFirstContextValue(String label) {
- for (final Pair<String, Object> pair : contextValues) {
- if (StringUtils.equals(label, pair.getKey())) {
- return pair.getValue();
- }
- }
- return null;
- }
-
- /**
- * {@inheritDoc}
- */
- public Set<String> getContextLabels() {
- final Set<String> labels = new HashSet<String>();
- for (final Pair<String, Object> pair : contextValues) {
- labels.add(pair.getKey());
- }
- return labels;
- }
-
- /**
- * {@inheritDoc}
- */
- public List<Pair<String, Object>> getContextEntries() {
- return contextValues;
- }
-
- /**
- * Builds the message containing the contextual information.
- *
- * @param baseMessage the base exception message <b>without</b> context information appended
- * @return the exception message <b>with</b> context information appended, never null
- */
- public String getFormattedExceptionMessage(String baseMessage){
- StringBuilder buffer = new StringBuilder(256);
- if (baseMessage != null) {
- buffer.append(baseMessage);
- }
-
- if (contextValues.size() > 0) {
- if (buffer.length() > 0) {
- buffer.append('\n');
- }
- buffer.append("Exception Context:\n");
-
- int i = 0;
- for (final Pair<String, Object> pair : contextValues) {
- buffer.append("\t[");
- buffer.append(++i);
- buffer.append(':');
- buffer.append(pair.getKey());
- buffer.append("=");
- final Object value = pair.getValue();
- if (value == null) {
- buffer.append("null");
- } else {
- String valueStr;
- try {
- valueStr = value.toString();
- } catch (Exception e) {
- valueStr = "Exception thrown on toString(): " + ExceptionUtils.getStackTrace(e);
- }
- buffer.append(valueStr);
- }
- buffer.append("]\n");
- }
- buffer.append("---------------------------------");
- }
- return buffer.toString();
- }
-
-}
+/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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 org.apache.commons.lang3.exception; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Set; + +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.tuple.ImmutablePair; +import org.apache.commons.lang3.tuple.Pair; + +/** + * Default implementation of the context storing the label-value pairs for contexted exceptions. + * <p> + * This implementation is serializable, however this is dependent on the values that + * are added also being serializable. + * </p> + * + * @see ContextedException + * @see ContextedRuntimeException + * @since 3.0 + */ +public class DefaultExceptionContext implements ExceptionContext, Serializable { + + /** The serialization version. */ + private static final long serialVersionUID = 20110706L; + + /** The list storing the label-data pairs. */ + private final List<Pair<String, Object>> contextValues = new ArrayList<Pair<String,Object>>(); + + /** + * {@inheritDoc} + */ + public DefaultExceptionContext addContextValue(String label, Object value) { + contextValues.add(new ImmutablePair<String, Object>(label, value)); + return this; + } + + /** + * {@inheritDoc} + */ + public DefaultExceptionContext setContextValue(String label, Object value) { + for (final Iterator<Pair<String, Object>> iter = contextValues.iterator(); iter.hasNext();) { + final Pair<String, Object> p = iter.next(); + if (StringUtils.equals(label, p.getKey())) { + iter.remove(); + } + } + addContextValue(label, value); + return this; + } + + /** + * {@inheritDoc} + */ + public List<Object> getContextValues(String label) { + final List<Object> values = new ArrayList<Object>(); + for (final Pair<String, Object> pair : contextValues) { + if (StringUtils.equals(label, pair.getKey())) { + values.add(pair.getValue()); + } + } + return values; + } + + /** + * {@inheritDoc} + */ + public Object getFirstContextValue(String label) { + for (final Pair<String, Object> pair : contextValues) { + if (StringUtils.equals(label, pair.getKey())) { + return pair.getValue(); + } + } + return null; + } + + /** + * {@inheritDoc} + */ + public Set<String> getContextLabels() { + final Set<String> labels = new HashSet<String>(); + for (final Pair<String, Object> pair : contextValues) { + labels.add(pair.getKey()); + } + return labels; + } + + /** + * {@inheritDoc} + */ + public List<Pair<String, Object>> getContextEntries() { + return contextValues; + } + + /** + * Builds the message containing the contextual information. + * + * @param baseMessage the base exception message <b>without</b> context information appended + * @return the exception message <b>with</b> context information appended, never null + */ + public String getFormattedExceptionMessage(String baseMessage){ + StringBuilder buffer = new StringBuilder(256); + if (baseMessage != null) { + buffer.append(baseMessage); + } + + if (contextValues.size() > 0) { + if (buffer.length() > 0) { + buffer.append('\n'); + } + buffer.append("Exception Context:\n"); + + int i = 0; + for (final Pair<String, Object> pair : contextValues) { + buffer.append("\t["); + buffer.append(++i); + buffer.append(':'); + buffer.append(pair.getKey()); + buffer.append("="); + final Object value = pair.getValue(); + if (value == null) { + buffer.append("null"); + } else { + String valueStr; + try { + valueStr = value.toString(); + } catch (Exception e) { + valueStr = "Exception thrown on toString(): " + ExceptionUtils.getStackTrace(e); + } + buffer.append(valueStr); + } + buffer.append("]\n"); + } + buffer.append("---------------------------------"); + } + return buffer.toString(); + } + +} |
