All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.semispace.persistence.dao.LeaseMeta Maven / Gradle / Ivy

Go to download

Persistence module of SemiSpace, able to provide JDBC storage of long lived objects.

There is a newer version: 1.2.0
Show newest version
/*
 * ============================================================================
 *
 *  File:     LeaseMeta.java
 *----------------------------------------------------------------------------
 *
 * Copyright 2008 Erlend Nossum
 *
 * 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.
 *
 *  Description:  See javadoc below
 *
 *  Created:      Apr 6, 2008
 * ============================================================================ 
 */

package org.semispace.persistence.dao;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

import org.semispace.Holder;
import org.semispace.persistence.domain.Tag;


/**
 * Object which can contain everything needed for query or insertion into the database.
 */
public class LeaseMeta {
    //private static final Logger log = LoggerFactory.getLogger(LeaseMeta.class);
    
    private String doctype;
    private Set tags;
    private String xml;

    private long holderId;
    
    public String getDoctype() {
        return this.doctype;
    }

    public Set getTags() {
        return this.tags;
    }

    public String getXml() {
        return xml;
    }
    private LeaseMeta() {
        // Intentional
    }


    public static final LeaseMeta createLeaseMeta( Holder holder ) {
        LeaseMeta leaseMeta = new LeaseMeta();
        leaseMeta.doctype = holder.getClassName();
        leaseMeta.xml = holder.getXml();
        leaseMeta.tags = leaseMeta.createTagsFromMap( holder.getSearchMap());
        leaseMeta.holderId = holder.getId();
        return leaseMeta;
    }
        
    private Set createTagsFromMap(Map searchMap) {
        Iterator> keys = searchMap.entrySet().iterator();
        Set ctags = new HashSet(); 
        while ( keys.hasNext() ) {
            Map.Entry entry = keys.next();
            String key = entry.getKey();
            String value = entry.getValue();
            Tag tag = new Tag();
            tag.setName( key );
            tag.setContent( value );
            ctags.add(tag);
        }
        return ctags;
    }
    protected long getHolderId() {
        return this.holderId;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy