~raginggoblin/infolog/infolog

« back to all changes in this revision

Viewing changes to InfologServer/lib/hibernate-distribution-3.3.2.GA/project/core/src/main/java/org/hibernate/mapping/Any.java

  • Committer: Raging Goblin
  • Date: 2013-11-16 16:51:32 UTC
  • Revision ID: raging_goblin-20131116165132-weujnptzc88uy4ah
Mavenized the project, now using shared project InfologSync

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Hibernate, Relational Persistence for Idiomatic Java
3
 
 *
4
 
 * Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
5
 
 * indicated by the @author tags or express copyright attribution
6
 
 * statements applied by the authors.  All third-party contributions are
7
 
 * distributed under license by Red Hat Middleware LLC.
8
 
 *
9
 
 * This copyrighted material is made available to anyone wishing to use, modify,
10
 
 * copy, or redistribute it subject to the terms and conditions of the GNU
11
 
 * Lesser General Public License, as published by the Free Software Foundation.
12
 
 *
13
 
 * This program is distributed in the hope that it will be useful,
14
 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15
 
 * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
16
 
 * for more details.
17
 
 *
18
 
 * You should have received a copy of the GNU Lesser General Public License
19
 
 * along with this distribution; if not, write to:
20
 
 * Free Software Foundation, Inc.
21
 
 * 51 Franklin Street, Fifth Floor
22
 
 * Boston, MA  02110-1301  USA
23
 
 *
24
 
 */
25
 
 
26
 
package org.hibernate.mapping;
27
 
 
28
 
import java.util.Map;
29
 
 
30
 
import org.hibernate.MappingException;
31
 
import org.hibernate.type.MetaType;
32
 
import org.hibernate.type.AnyType;
33
 
import org.hibernate.type.Type;
34
 
import org.hibernate.type.TypeFactory;
35
 
 
36
 
/**
37
 
 * A Hibernate "any" type (ie. polymorphic association to
38
 
 * one-of-several tables).
39
 
 * @author Gavin King
40
 
 */
41
 
public class Any extends SimpleValue {
42
 
 
43
 
        private String identifierTypeName;
44
 
        private String metaTypeName = "string";
45
 
        private Map metaValues;
46
 
 
47
 
        public Any(Table table) {
48
 
                super(table);
49
 
        }
50
 
 
51
 
        public String getIdentifierType() {
52
 
                return identifierTypeName;
53
 
        }
54
 
 
55
 
        public void setIdentifierType(String identifierType) {
56
 
                this.identifierTypeName = identifierType;
57
 
        }
58
 
 
59
 
        public Type getType() throws MappingException {
60
 
                return new AnyType(
61
 
                        metaValues==null ?
62
 
                                TypeFactory.heuristicType(metaTypeName) :
63
 
                                new MetaType( metaValues, TypeFactory.heuristicType(metaTypeName) ),
64
 
                                TypeFactory.heuristicType(identifierTypeName)
65
 
                );
66
 
        }
67
 
 
68
 
        public void setTypeByReflection(String propertyClass, String propertyName) {}
69
 
 
70
 
        public String getMetaType() {
71
 
                return metaTypeName;
72
 
        }
73
 
 
74
 
        public void setMetaType(String type) {
75
 
                metaTypeName = type;
76
 
        }
77
 
 
78
 
        public Map getMetaValues() {
79
 
                return metaValues;
80
 
        }
81
 
 
82
 
        public void setMetaValues(Map metaValues) {
83
 
                this.metaValues = metaValues;
84
 
        }
85
 
 
86
 
        public void setTypeUsingReflection(String className, String propertyName)
87
 
                throws MappingException {
88
 
        }
89
 
 
90
 
        public Object accept(ValueVisitor visitor) {
91
 
                return visitor.accept(this);
92
 
        }
93
 
}