| /* |
| * Copyright 2010 Google Inc. |
| * |
| * Licensed 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.google.gwt.editor.client.impl; |
| |
| import com.google.gwt.editor.client.Editor; |
| import com.google.gwt.editor.client.EditorError; |
| |
| /** |
| * Used by {@link AbstractEditorDelegate#recordError()}. |
| */ |
| class SimpleError implements EditorError { |
| private final String absolutePath; |
| private boolean consumed; |
| private final Editor<?> editor; |
| private final String message; |
| private final Object value; |
| private final Object userData; |
| private int pathPrefixLength; |
| |
| SimpleError(AbstractEditorDelegate<?, ?> delegate, String message, |
| Object value, Object userData) { |
| this.absolutePath = delegate.getPath(); |
| this.editor = delegate.getEditor(); |
| this.message = message; |
| this.value = value == null ? delegate.getObject() : value; |
| this.userData = userData; |
| } |
| |
| /** |
| * Used to construct an error for an Editor that does not have a delegate. |
| */ |
| SimpleError(AbstractEditorDelegate<?, ?> delegate, String message, |
| Object value, Object userData, String extraPath, Editor<?> leafEditor) { |
| assert extraPath != null && extraPath.length() > 0; |
| this.absolutePath = delegate.getPath() + extraPath; |
| this.editor = leafEditor; |
| this.message = message; |
| this.value = value; |
| this.userData = userData; |
| } |
| |
| public String getAbsolutePath() { |
| return absolutePath; |
| } |
| |
| public Editor<?> getEditor() { |
| return editor; |
| } |
| |
| public String getMessage() { |
| return message; |
| } |
| |
| public String getPath() { |
| return absolutePath.substring(pathPrefixLength); |
| } |
| |
| public Object getUserData() { |
| return userData; |
| } |
| |
| public Object getValue() { |
| return value; |
| } |
| |
| public boolean isConsumed() { |
| return consumed; |
| } |
| |
| public void setConsumed(boolean consumed) { |
| this.consumed = consumed; |
| } |
| |
| /** |
| * For debugging use only. |
| */ |
| @Override |
| public String toString() { |
| return getMessage() + " @ " + getPath(); |
| } |
| |
| void setPathPrefixLength(int pathPrefixLength) { |
| this.pathPrefixLength = pathPrefixLength; |
| } |
| } |