You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metamodel.apache.org by ka...@apache.org on 2013/07/22 10:11:13 UTC
[60/64] git commit: Added a utility ObjectInputStream for
deserializing legacy org.eobjects.metamodel objects.
Added a utility ObjectInputStream for deserializing legacy
org.eobjects.metamodel objects.
Project: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/commit/69ad6cdd
Tree: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/tree/69ad6cdd
Diff: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/diff/69ad6cdd
Branch: refs/heads/master
Commit: 69ad6cdd497f900af50d7cb018ace53139771c8a
Parents: 587d518
Author: kaspers <ka...@kaspers-think.humaninference.com>
Authored: Fri Jul 19 11:04:34 2013 +0200
Committer: kaspers <ka...@kaspers-think.humaninference.com>
Committed: Fri Jul 19 11:04:34 2013 +0200
----------------------------------------------------------------------
.../org/apache/metamodel/data/DefaultRow.java | 2 +-
.../org/apache/metamodel/data/StyleImpl.java | 292 +++++++++----------
.../apache/metamodel/schema/ImmutableTable.java | 2 -
.../LegacyDeserializationObjectInputStream.java | 47 +++
.../apache/metamodel/data/DefaultRowTest.java | 7 +-
5 files changed, 197 insertions(+), 153 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/69ad6cdd/core/src/main/java/org/apache/metamodel/data/DefaultRow.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/data/DefaultRow.java b/core/src/main/java/org/apache/metamodel/data/DefaultRow.java
index c528bc3..64703d4 100644
--- a/core/src/main/java/org/apache/metamodel/data/DefaultRow.java
+++ b/core/src/main/java/org/apache/metamodel/data/DefaultRow.java
@@ -35,7 +35,7 @@ public final class DefaultRow extends AbstractRow implements Row {
private final DataSetHeader _header;
private final Object[] _values;
private final Style[] _styles;
-
+
/**
* This field was replaced by the DataSetHeader field above.
*
http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/69ad6cdd/core/src/main/java/org/apache/metamodel/data/StyleImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/data/StyleImpl.java b/core/src/main/java/org/apache/metamodel/data/StyleImpl.java
index ef6ba31..6e2f078 100644
--- a/core/src/main/java/org/apache/metamodel/data/StyleImpl.java
+++ b/core/src/main/java/org/apache/metamodel/data/StyleImpl.java
@@ -27,151 +27,149 @@ import org.apache.metamodel.util.BaseObject;
*
* @author Kasper Sørensen
*/
-final class StyleImpl extends BaseObject implements Style {
-
- private static final long serialVersionUID = 1L;
-
- private final boolean _underline;
- private final boolean _italic;
- private final boolean _bold;
- private final Integer _fontSize;
- private final TextAlignment _alignment;
- private final Color _backgroundColor;
- private final Color _foregroundColor;
- private final SizeUnit _fontSizeUnit;
-
- public StyleImpl() {
- this(false, false, false, null, null, null, null, null);
- }
-
- public StyleImpl(boolean bold, boolean italic, boolean underline,
- Integer fontSize, SizeUnit fontSizeUnit, TextAlignment alignment,
- Color backgroundColor, Color foregroundColor) {
- _bold = bold;
- _italic = italic;
- _underline = underline;
- _fontSize = fontSize;
- _fontSizeUnit = fontSizeUnit;
- _alignment = alignment;
- _backgroundColor = backgroundColor;
- _foregroundColor = foregroundColor;
- }
-
- @Override
- public boolean isBold() {
- return _bold;
- }
-
- @Override
- public boolean isItalic() {
- return _italic;
- }
-
- @Override
- public boolean isUnderline() {
- return _underline;
- }
-
- @Override
- public Integer getFontSize() {
- return _fontSize;
- }
-
- @Override
- public SizeUnit getFontSizeUnit() {
- return _fontSizeUnit;
- }
-
- @Override
- public TextAlignment getAlignment() {
- return _alignment;
- }
-
- @Override
- public Color getForegroundColor() {
- return _foregroundColor;
- }
-
- @Override
- public Color getBackgroundColor() {
- return _backgroundColor;
- }
-
- @Override
- public String toCSS() {
- StringBuilder sb = new StringBuilder();
- if (_bold) {
- sb.append("font-weight: bold;");
- }
- if (_italic) {
- sb.append("font-style: italic;");
- }
- if (_underline) {
- sb.append("text-decoration: underline;");
- }
- if (_alignment != null) {
- sb.append("text-align: " + toCSS(_alignment) + ";");
- }
- if (_fontSize != null) {
- sb.append("font-size: " + _fontSize);
- switch (_fontSizeUnit) {
- case PT:
- sb.append("pt");
- break;
- case PX:
- sb.append("px");
- break;
- case PERCENT:
- sb.append("%");
- break;
- default:
- // don't write a size unit
- }
- sb.append(';');
- }
- if (_foregroundColor != null) {
- sb.append("color: " + toCSS(_foregroundColor) + ";");
- }
- if (_backgroundColor != null) {
- sb.append("background-color: " + toCSS(_backgroundColor) + ";");
- }
- return sb.toString();
- }
-
- private String toCSS(Color c) {
- return "rgb(" + c.getRed() + "," + c.getGreen() + "," + c.getBlue()
- + ")";
- }
-
- @Override
- public String toString() {
- return toCSS();
- }
-
- private String toCSS(TextAlignment alignment) {
- switch (alignment) {
- case LEFT:
- return "left";
- case RIGHT:
- return "right";
- case CENTER:
- return "center";
- case JUSTIFY:
- return "justify";
- default:
- throw new IllegalStateException("Unknown alignment: " + alignment);
- }
- }
-
- @Override
- protected void decorateIdentity(List<Object> identifiers) {
- identifiers.add(_underline);
- identifiers.add(_italic);
- identifiers.add(_bold);
- identifiers.add(_fontSize);
- identifiers.add(_fontSizeUnit);
- identifiers.add(_alignment);
- identifiers.add(_backgroundColor);
- identifiers.add(_foregroundColor);
- }
+public final class StyleImpl extends BaseObject implements Style {
+
+ private static final long serialVersionUID = 1L;
+
+ private final boolean _underline;
+ private final boolean _italic;
+ private final boolean _bold;
+ private final Integer _fontSize;
+ private final TextAlignment _alignment;
+ private final Color _backgroundColor;
+ private final Color _foregroundColor;
+ private final SizeUnit _fontSizeUnit;
+
+ public StyleImpl() {
+ this(false, false, false, null, null, null, null, null);
+ }
+
+ public StyleImpl(boolean bold, boolean italic, boolean underline, Integer fontSize, SizeUnit fontSizeUnit,
+ TextAlignment alignment, Color backgroundColor, Color foregroundColor) {
+ _bold = bold;
+ _italic = italic;
+ _underline = underline;
+ _fontSize = fontSize;
+ _fontSizeUnit = fontSizeUnit;
+ _alignment = alignment;
+ _backgroundColor = backgroundColor;
+ _foregroundColor = foregroundColor;
+ }
+
+ @Override
+ public boolean isBold() {
+ return _bold;
+ }
+
+ @Override
+ public boolean isItalic() {
+ return _italic;
+ }
+
+ @Override
+ public boolean isUnderline() {
+ return _underline;
+ }
+
+ @Override
+ public Integer getFontSize() {
+ return _fontSize;
+ }
+
+ @Override
+ public SizeUnit getFontSizeUnit() {
+ return _fontSizeUnit;
+ }
+
+ @Override
+ public TextAlignment getAlignment() {
+ return _alignment;
+ }
+
+ @Override
+ public Color getForegroundColor() {
+ return _foregroundColor;
+ }
+
+ @Override
+ public Color getBackgroundColor() {
+ return _backgroundColor;
+ }
+
+ @Override
+ public String toCSS() {
+ StringBuilder sb = new StringBuilder();
+ if (_bold) {
+ sb.append("font-weight: bold;");
+ }
+ if (_italic) {
+ sb.append("font-style: italic;");
+ }
+ if (_underline) {
+ sb.append("text-decoration: underline;");
+ }
+ if (_alignment != null) {
+ sb.append("text-align: " + toCSS(_alignment) + ";");
+ }
+ if (_fontSize != null) {
+ sb.append("font-size: " + _fontSize);
+ switch (_fontSizeUnit) {
+ case PT:
+ sb.append("pt");
+ break;
+ case PX:
+ sb.append("px");
+ break;
+ case PERCENT:
+ sb.append("%");
+ break;
+ default:
+ // don't write a size unit
+ }
+ sb.append(';');
+ }
+ if (_foregroundColor != null) {
+ sb.append("color: " + toCSS(_foregroundColor) + ";");
+ }
+ if (_backgroundColor != null) {
+ sb.append("background-color: " + toCSS(_backgroundColor) + ";");
+ }
+ return sb.toString();
+ }
+
+ private String toCSS(Color c) {
+ return "rgb(" + c.getRed() + "," + c.getGreen() + "," + c.getBlue() + ")";
+ }
+
+ @Override
+ public String toString() {
+ return toCSS();
+ }
+
+ private String toCSS(TextAlignment alignment) {
+ switch (alignment) {
+ case LEFT:
+ return "left";
+ case RIGHT:
+ return "right";
+ case CENTER:
+ return "center";
+ case JUSTIFY:
+ return "justify";
+ default:
+ throw new IllegalStateException("Unknown alignment: " + alignment);
+ }
+ }
+
+ @Override
+ protected void decorateIdentity(List<Object> identifiers) {
+ identifiers.add(_underline);
+ identifiers.add(_italic);
+ identifiers.add(_bold);
+ identifiers.add(_fontSize);
+ identifiers.add(_fontSizeUnit);
+ identifiers.add(_alignment);
+ identifiers.add(_backgroundColor);
+ identifiers.add(_foregroundColor);
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/69ad6cdd/core/src/main/java/org/apache/metamodel/schema/ImmutableTable.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/schema/ImmutableTable.java b/core/src/main/java/org/apache/metamodel/schema/ImmutableTable.java
index 4fc470b..d807290 100644
--- a/core/src/main/java/org/apache/metamodel/schema/ImmutableTable.java
+++ b/core/src/main/java/org/apache/metamodel/schema/ImmutableTable.java
@@ -29,8 +29,6 @@ import java.util.List;
* constructor in ImmutableSchema.
*
* @see ImmutableSchema
- *
- * @author Kasper Sørensen
*/
final class ImmutableTable extends AbstractTable implements Serializable {
http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/69ad6cdd/core/src/main/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStream.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStream.java b/core/src/main/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStream.java
new file mode 100644
index 0000000..c5ab2e5
--- /dev/null
+++ b/core/src/main/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStream.java
@@ -0,0 +1,47 @@
+/**
+ * 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.metamodel.util;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectStreamClass;
+
+/**
+ * A specialized {@link ObjectInputStream} for MetaModel which can be used or
+ * extended if it is needed to deserialize legacy MetaModel objects. This is
+ * needed since the namespace of MetaModel was changed from
+ * org.eobjects.metamodel to org.apache.metamodel.
+ */
+public class LegacyDeserializationObjectInputStream extends ObjectInputStream {
+
+ public LegacyDeserializationObjectInputStream(InputStream in) throws IOException, SecurityException {
+ super(in);
+ }
+
+ @Override
+ protected Class<?> resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException {
+ String className = desc.getName();
+ if (className.startsWith("org.eobjects.metamodel") || className.startsWith("[Lorg.eobjects.metamodel")) {
+ String newClassName = className.replace("org.eobjects", "org.apache");
+ return Class.forName(newClassName);
+ }
+ return super.resolveClass(desc);
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/69ad6cdd/core/src/test/java/org/apache/metamodel/data/DefaultRowTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/data/DefaultRowTest.java b/core/src/test/java/org/apache/metamodel/data/DefaultRowTest.java
index e19cc29..45ff980 100644
--- a/core/src/test/java/org/apache/metamodel/data/DefaultRowTest.java
+++ b/core/src/test/java/org/apache/metamodel/data/DefaultRowTest.java
@@ -25,20 +25,21 @@ import java.lang.reflect.Field;
import org.apache.metamodel.query.SelectItem;
import org.apache.metamodel.schema.MutableColumn;
import org.apache.metamodel.util.FileHelper;
+import org.apache.metamodel.util.LegacyDeserializationObjectInputStream;
import junit.framework.TestCase;
public class DefaultRowTest extends TestCase {
- SelectItem[] items = new SelectItem[] { new SelectItem(new MutableColumn("foo")),
+ private SelectItem[] items = new SelectItem[] { new SelectItem(new MutableColumn("foo")),
new SelectItem(new MutableColumn("bar")) };
- Object[] values = new Object[] { "foo", "bar" };
+ private Object[] values = new Object[] { "foo", "bar" };
public void testDeserializeBackwardsCompatible() throws Exception {
Object obj;
FileInputStream fileIn = new FileInputStream("src/test/resources/metamodel-3.0-default-row.ser");
try {
- ObjectInputStream ois = new ObjectInputStream(fileIn);
+ ObjectInputStream ois = new LegacyDeserializationObjectInputStream(fileIn);
obj = ois.readObject();
ois.close();
} finally {