mirror of https://github.com/apache/openjpa.git
OPENJPA-240, cleanup work
git-svn-id: https://svn.apache.org/repos/asf/openjpa/trunk@548835 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
8bf89a655a
commit
e59f995429
|
@ -1,64 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!--
|
|
||||||
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.
|
|
||||||
-->
|
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
<groupId>org.apache.openjpa</groupId>
|
|
||||||
<artifactId>openjpa-xmlmapping-5</artifactId>
|
|
||||||
<packaging>jar</packaging>
|
|
||||||
<name>OpenJPA Xmlmapping 1.5</name>
|
|
||||||
<description>OpenJPA Xmlmapping 1.5</description>
|
|
||||||
<url>http://incubator.apache.org/projects/openjpa</url>
|
|
||||||
<parent>
|
|
||||||
<groupId>org.apache.openjpa</groupId>
|
|
||||||
<artifactId>openjpa-parent</artifactId>
|
|
||||||
<version>1.0.0-SNAPSHOT</version>
|
|
||||||
</parent>
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.openjpa</groupId>
|
|
||||||
<artifactId>openjpa-kernel</artifactId>
|
|
||||||
<version>${pom.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.openjpa</groupId>
|
|
||||||
<artifactId>openjpa-jdbc</artifactId>
|
|
||||||
<version>${pom.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>javax.xml.bind</groupId>
|
|
||||||
<artifactId>jaxb-api</artifactId>
|
|
||||||
<version>2.1</version>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
<build>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
<source>1.5</source>
|
|
||||||
<target>1.5</target>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
</project>
|
|
|
@ -1,97 +0,0 @@
|
||||||
/*
|
|
||||||
* 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.openjpa.xmlmapping;
|
|
||||||
|
|
||||||
import java.io.StringReader;
|
|
||||||
import java.io.StringWriter;
|
|
||||||
import java.io.Writer;
|
|
||||||
|
|
||||||
import javax.xml.bind.JAXBContext;
|
|
||||||
import javax.xml.bind.JAXBException;
|
|
||||||
import javax.xml.bind.Marshaller;
|
|
||||||
import javax.xml.bind.Unmarshaller;
|
|
||||||
import javax.xml.transform.stream.StreamSource;
|
|
||||||
|
|
||||||
import org.apache.openjpa.jdbc.kernel.JDBCStore;
|
|
||||||
import org.apache.openjpa.jdbc.meta.ValueMapping;
|
|
||||||
import org.apache.openjpa.jdbc.meta.strats.AbstractValueHandler;
|
|
||||||
import org.apache.openjpa.jdbc.schema.Column;
|
|
||||||
import org.apache.openjpa.jdbc.schema.ColumnIO;
|
|
||||||
import org.apache.openjpa.meta.JavaTypes;
|
|
||||||
import org.apache.openjpa.util.InternalException;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Base class for xml value handlers.
|
|
||||||
*
|
|
||||||
* @author Catalina Wei
|
|
||||||
* @since 1.0
|
|
||||||
*/
|
|
||||||
public class XmlValueHandler
|
|
||||||
extends AbstractValueHandler {
|
|
||||||
private static final String PROXY_SUFFIX = "$proxy";
|
|
||||||
|
|
||||||
public Column[] map(ValueMapping vm, String name, ColumnIO io,
|
|
||||||
boolean adapt) {
|
|
||||||
Column col = new Column();
|
|
||||||
col.setName(name);
|
|
||||||
col.setJavaType(JavaTypes.STRING);
|
|
||||||
col.setSize(-1);
|
|
||||||
col.setTypeName(vm.getMappingRepository().getDBDictionary()
|
|
||||||
.xmlTypeName);
|
|
||||||
return new Column[]{ col };
|
|
||||||
}
|
|
||||||
|
|
||||||
public Object toDataStoreValue(ValueMapping vm, Object val,
|
|
||||||
JDBCStore store) {
|
|
||||||
// check for null value.
|
|
||||||
if (val == null)
|
|
||||||
return null;
|
|
||||||
try {
|
|
||||||
JAXBContext jc = JAXBContext.newInstance(
|
|
||||||
// on update val is a proxy, that can not be marshalled.
|
|
||||||
// so we get original type if val is a proxy.
|
|
||||||
(val.getClass().getName().endsWith(PROXY_SUFFIX))
|
|
||||||
? val.getClass().getSuperclass()
|
|
||||||
: val.getClass());
|
|
||||||
Marshaller m = jc.createMarshaller();
|
|
||||||
Writer result = new StringWriter();
|
|
||||||
m.marshal( val, result );
|
|
||||||
return result.toString();
|
|
||||||
}
|
|
||||||
catch(JAXBException je) {
|
|
||||||
throw new InternalException(je);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public Object toObjectValue(ValueMapping vm, Object val) {
|
|
||||||
// check for null value.
|
|
||||||
if (val == null)
|
|
||||||
return null;
|
|
||||||
try {
|
|
||||||
String packageName = vm.getDeclaredType().getPackage().getName();
|
|
||||||
JAXBContext jc = JAXBContext.newInstance(packageName);
|
|
||||||
Unmarshaller u = jc.createUnmarshaller();
|
|
||||||
return u.unmarshal(new StreamSource(new StringReader
|
|
||||||
(val.toString())));
|
|
||||||
}
|
|
||||||
catch(JAXBException je) {
|
|
||||||
throw new InternalException(je);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue