⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iocontext.java

📁 Rapla是一个灵活的多用户资源管理系统。它提供的一些功能有:日历GUI
💻 JAVA
字号:
package org.rapla.storage;

import java.util.HashMap;
import java.util.Map;

import org.rapla.entities.Category;
import org.rapla.entities.User;
import org.rapla.entities.configuration.CalendarModelConfiguration;
import org.rapla.entities.configuration.Preferences;
import org.rapla.entities.configuration.RaplaConfiguration;
import org.rapla.entities.configuration.RaplaMap;
import org.rapla.entities.domain.Allocatable;
import org.rapla.entities.domain.Appointment;
import org.rapla.entities.domain.Period;
import org.rapla.entities.domain.Reservation;
import org.rapla.entities.dynamictype.Attribute;
import org.rapla.entities.dynamictype.DynamicType;
import org.rapla.framework.RaplaContext;
import org.rapla.framework.RaplaDefaultContext;
import org.rapla.framework.RaplaException;
import org.rapla.storage.impl.EntityStore;
import org.rapla.storage.xml.AllocatableReader;
import org.rapla.storage.xml.AllocatableWriter;
import org.rapla.storage.xml.CategoryReader;
import org.rapla.storage.xml.CategoryWriter;
import org.rapla.storage.xml.DynamicTypeReader;
import org.rapla.storage.xml.DynamicTypeWriter;
import org.rapla.storage.xml.PeriodReader;
import org.rapla.storage.xml.PeriodWriter;
import org.rapla.storage.xml.PreferenceReader;
import org.rapla.storage.xml.PreferenceWriter;
import org.rapla.storage.xml.RaplaCalendarSettingsReader;
import org.rapla.storage.xml.RaplaCalendarSettingsWriter;
import org.rapla.storage.xml.RaplaConfigurationReader;
import org.rapla.storage.xml.RaplaConfigurationWriter;
import org.rapla.storage.xml.RaplaMapReader;
import org.rapla.storage.xml.RaplaMapWriter;
import org.rapla.storage.xml.RemoveReader;
import org.rapla.storage.xml.ReservationReader;
import org.rapla.storage.xml.ReservationWriter;
import org.rapla.storage.xml.UserReader;
import org.rapla.storage.xml.UserWriter;

public class IOContext
{
   protected Map getLocalnameMap()  {
        //WARNING We can't use RaplaType.getRegisteredTypes() because the class could not be registered on load time
        Map localnameMap = new HashMap();
        localnameMap.put( Reservation.TYPE.getLocalName(), Reservation.TYPE);
        localnameMap.put( Appointment.TYPE.getLocalName(), Appointment.TYPE);
        localnameMap.put( Allocatable.TYPE.getLocalName(), Allocatable.TYPE);
        localnameMap.put( User.TYPE.getLocalName(), User.TYPE);
        localnameMap.put( Period.TYPE.getLocalName(), Period.TYPE);
        localnameMap.put( Category.TYPE.getLocalName(), Category.TYPE);
        localnameMap.put( DynamicType.TYPE.getLocalName(), DynamicType.TYPE);
        localnameMap.put( Attribute.TYPE.getLocalName(), Attribute.TYPE);
        localnameMap.put( RaplaConfiguration.TYPE.getLocalName(), RaplaConfiguration.TYPE);
        localnameMap.put( RaplaMap.TYPE.getLocalName(), RaplaMap.TYPE);
        localnameMap.put( CalendarModelConfiguration.TYPE.getLocalName(), CalendarModelConfiguration.TYPE);
        return localnameMap;
    }
 
    protected void addReaders(Map readerMap,RaplaContext context) throws RaplaException {
        readerMap.put( "remove",new RemoveReader( context));
        readerMap.put( Category.TYPE,new CategoryReader( context));
        readerMap.put( Preferences.TYPE, new PreferenceReader(context) );
        readerMap.put( DynamicType.TYPE, new DynamicTypeReader(context) );
        readerMap.put( User.TYPE, new UserReader(context));
        readerMap.put( Allocatable.TYPE, new AllocatableReader(context) );
        readerMap.put( Period.TYPE, new PeriodReader(context) );
        readerMap.put( Reservation.TYPE,new ReservationReader(context));
        readerMap.put( RaplaConfiguration.TYPE, new RaplaConfigurationReader(context));
        readerMap.put( RaplaMap.TYPE, new RaplaMapReader(context));
        readerMap.put( CalendarModelConfiguration.TYPE, new RaplaCalendarSettingsReader(context) );
    }

     protected void addWriters(Map writerMap,RaplaContext context) throws RaplaException {
        writerMap.put( Category.TYPE,new CategoryWriter(context));
        writerMap.put( Preferences.TYPE,new PreferenceWriter(context) );
        writerMap.put( DynamicType.TYPE,new DynamicTypeWriter(context));
        writerMap.put( User.TYPE, new UserWriter(context) );
        writerMap.put( Allocatable.TYPE, new AllocatableWriter(context) );
        writerMap.put( Period.TYPE, new PeriodWriter(context) );
        writerMap.put( Reservation.TYPE,new ReservationWriter(context));
        writerMap.put( RaplaConfiguration.TYPE,new RaplaConfigurationWriter(context) );
        writerMap.put( RaplaMap.TYPE, new RaplaMapWriter(context) );
        writerMap.put( Preferences.TYPE, new PreferenceWriter(context) );
        writerMap.put( CalendarModelConfiguration.TYPE, new RaplaCalendarSettingsWriter(context) );
    }

    public RaplaDefaultContext createInputContext(RaplaContext parentContext, EntityStore store, IdTable idTable) throws RaplaException {
         
        RaplaDefaultContext ioContext = new RaplaDefaultContext( parentContext);
        ioContext.put(EntityStore.class.getName(), store);
        ioContext.put(IdTable.class.getName(),idTable);
        ioContext.put(PreferenceReader.LOCALNAMEMAPENTRY, getLocalnameMap());
        Map readerMap = new HashMap();
        ioContext.put(PreferenceReader.READERMAP, readerMap);
        addReaders( readerMap, ioContext);
        return ioContext;
     }
    
    public RaplaDefaultContext createOutputContext(RaplaContext parentContext, LocalCache cache, boolean includeIds, boolean includeVersions) throws RaplaException {
        
        RaplaDefaultContext ioContext = new RaplaDefaultContext( parentContext);
        if ( includeIds)
        {
            ioContext.put("idonly", Boolean.TRUE);
        }
        if ( includeVersions)
        {
            ioContext.put("printversion", Boolean.TRUE);
        }
        ioContext.put(LocalCache.class.getName(), cache);
        ioContext.put(PreferenceReader.LOCALNAMEMAPENTRY, getLocalnameMap());
        Map writerMap = new HashMap();
        ioContext.put(PreferenceWriter.WRITERMAP, writerMap);
        addWriters( writerMap, ioContext );
        return ioContext;
     }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -