Changeset 6d5d73385cb2f820f60614371d12d6645b27f935

Show
Ignore:
Timestamp:
05/31/07 10:05:28 (1 year ago)
Author:
Christopher Jung <bktheg@web.de>
git-committer:
Christopher Jung <bktheg@web.de> 1180598728 +0200
git-parent:

[b23b61801250aa5d0eb032e23162fd6aae7e008c]

git-author:
Christopher Jung <bktheg@web.de> 1180598728 +0200
Message:

Weitere Entities hinzugefuegt

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • src/net/driftingsouls/ds2/server/Offizier.java

    r85bd10b r6d5d733  
    1919package net.driftingsouls.ds2.server; 
    2020 
     21import javax.persistence.Entity; 
     22import javax.persistence.FetchType; 
     23import javax.persistence.GeneratedValue; 
     24import javax.persistence.Id; 
     25import javax.persistence.JoinColumn; 
     26import javax.persistence.ManyToOne; 
     27import javax.persistence.Table; 
     28import javax.persistence.Transient; 
     29 
    2130import net.driftingsouls.ds2.server.config.Offiziere; 
    2231import net.driftingsouls.ds2.server.framework.Common; 
    2332import net.driftingsouls.ds2.server.framework.Configuration; 
     33import net.driftingsouls.ds2.server.framework.Context; 
    2434import net.driftingsouls.ds2.server.framework.ContextMap; 
    2535import net.driftingsouls.ds2.server.framework.DSObject; 
     36import net.driftingsouls.ds2.server.framework.User; 
    2637import net.driftingsouls.ds2.server.framework.db.Database; 
    2738import net.driftingsouls.ds2.server.framework.db.SQLResultRow; 
     
    3546 * 
    3647 */ 
     48@Entity 
     49@Table(name="offizier") 
    3750public class Offizier extends DSObject { 
    3851        /** 
     
    115128        } 
    116129         
     130        @Id @GeneratedValue 
    117131        private int id; 
    118132        private String name; 
    119133        private int rang; 
    120         private int owner; 
     134        @ManyToOne(fetch=FetchType.LAZY) 
     135        @JoinColumn(name="owner") 
     136        private User owner; 
    121137        private String dest; 
    122138        private int ing; 
     
    131147        private int secu; 
    132148        private int comu; 
    133         private boolean changed = false;; 
     149        @Transient 
     150        private boolean changed = false; 
     151        @Transient 
     152        private boolean nonHibernate = false; 
     153         
     154        /** 
     155         * Konstruktor 
     156         * 
     157         */ 
     158        public Offizier() { 
     159                // EMPTY 
     160        } 
     161         
     162        /** 
     163         * Konstruktor 
     164         * @param owner 
     165         * @param name 
     166         */ 
     167        public Offizier(User owner, String name) { 
     168                setOwner(owner); 
     169                setName(name); 
     170        } 
    134171         
    135172        /** 
     
    137174         * Zeile muss alle Daten aus der Offizierstabelle enthalten 
    138175         * @param data die SQL-Ergebniszeile 
    139          */ 
     176         * @deprecated Bitte Hibernate benutzen 
     177         */ 
     178        @Deprecated 
    140179        public Offizier( SQLResultRow data ) { 
     180                Context context = ContextMap.getContext(); 
    141181                id = data.getInt("id"); 
    142182                name = data.getString("name"); 
    143183                rang = data.getInt("rang"); 
    144                 owner = data.getInt("userid"); 
     184                owner = (User)context.getDB().get(User.class,data.getInt("userid")); 
    145185                dest = data.getString("dest"); 
    146186                ing = data.getInt("ing"); 
     
    154194                wafu = data.getInt("wafu"); 
    155195                secu = data.getInt("secu"); 
    156                 comu = data.getInt("comu");      
     196                comu = data.getInt("comu"); 
     197                nonHibernate = true; 
    157198        } 
    158199         
     
    223264         
    224265        /** 
    225          * Gibt die ID des Besitzers des Offiziers zurueck 
    226          * @return die ID des Besitzers 
    227          */ 
    228         public int getOwner() { 
     266         * Gibt den Besitzers des Offiziers zurueck 
     267         * @return der Besitzer 
     268         */ 
     269        public User getOwner() { 
    229270                return owner;    
    230271        } 
    231272         
    232273        /** 
    233          * Setzt den Besitzer des Offiziers auf die angegebene ID 
     274         * Setzt den Besitzer des Offiziers 
    234275         * @param owner der neue Besitzer 
    235276         */ 
    236         public void setOwner( int owner ) { 
     277        public void setOwner( User owner ) { 
    237278                this.owner = owner;  
    238279                 
     
    369410        /** 
    370411         * Speichert die Offiziersdaten in der Datenbank 
    371          * 
    372          */ 
     412         * @deprecated Bitte Hibernate benutzen 
     413         */ 
     414        @Deprecated 
    373415        public void save() { 
     416                if( !nonHibernate ) { 
     417                        throw new RuntimeException("Das Objekt wird von Hibernate verwaltet"); 
     418                } 
    374419                if( changed ) { 
    375420                        Database db = ContextMap.getContext().getDatabase(); 
     
    397442         */ 
    398443        public static Offizier getOffizierByDest(char dest, int objid) { 
    399                 Database db = ContextMap.getContext().getDatabase(); 
    400                  
    401                 SQLResultRow offizier = db.first("SELECT * FROM offiziere WHERE dest='",dest," ",objid,"' ORDER BY rang DESC,id ASC"); 
    402                 if( !offizier.isEmpty() ) { 
    403                         return new Offizier(offizier); 
    404                 } 
    405                 return null; 
     444                org.hibernate.Session db = ContextMap.getContext().getDB(); 
     445                 
     446                return (Offizier)db.createQuery("from Offizier where dest=? order by rang desc") 
     447                        .setString(0, dest+" "+objid) 
     448                        .iterate().next(); 
    406449        } 
    407450         
     
    413456         */ 
    414457        public static Offizier getOffizierByID(int id) { 
    415                 Database db = ContextMap.getContext().getDatabase(); 
    416                  
    417                 SQLResultRow offizier = db.first("SELECT * FROM offiziere WHERE id='",id,"'"); 
    418                 if( !offizier.isEmpty() ) { 
    419                         return new Offizier(offizier); 
    420                 } 
    421                 return null; 
     458                org.hibernate.Session db = ContextMap.getContext().getDB(); 
     459                 
     460                return (Offizier)db.get(Offizier.class, id); 
    422461        } 
    423462} 
  • src/net/driftingsouls/ds2/server/modules/ChoffController.java

    r13d1096 r6d5d733  
    2323import net.driftingsouls.ds2.server.framework.Context; 
    2424import net.driftingsouls.ds2.server.framework.User; 
    25 import net.driftingsouls.ds2.server.framework.db.Database; 
    26 import net.driftingsouls.ds2.server.framework.db.SQLResultRow; 
    2725import net.driftingsouls.ds2.server.framework.pipeline.generators.DSGenerator; 
    2826import net.driftingsouls.ds2.server.framework.templates.TemplateEngine; 
     
    5250        @Override 
    5351        protected boolean validateAndPrepare( String action ) { 
    54                 Database db = getDatabase(); 
    5552                User user = getUser(); 
    5653                 
    5754                int off = getInteger("off"); 
    5855 
    59                 SQLResultRow offizierRow = db.first("SELECT * FROM offiziere WHERE id=",off);          
    60                 if( offizierRow.isEmpty() ) { 
     56                Offizier offizier = (Offizier)getDB().get(Offizier.class, off);                
     57                if( offizier == null ) { 
    6158                        addError("Der angegebene Offizier ist ung&uuml;ltig", Common.buildUrl(getContext(), "default", "module", "ueber") ); 
    6259                         
     
    6461                } 
    6562 
    66                 Offizier offizier = new Offizier( offizierRow ); 
    67  
    68                 if( offizier.getOwner() != user.getID() ) { 
     63                if( offizier.getOwner() != user ) { 
    6964                        addError("Dieser Offizier untersteht nicht ihrem Kommando", Common.buildUrl(getContext(), "default", "module", "ueber") ); 
    7065                         
  • src/net/driftingsouls/ds2/server/modules/TCController.java

    r0cce997 r6d5d733  
    1919package net.driftingsouls.ds2.server.modules; 
    2020 
    21 import java.util.ArrayList; 
    2221import java.util.List; 
    2322 
     
    9998        private void echoOffiList( String mode, String  dest, int destid ) { 
    10099                TemplateEngine t = getTemplateEngine(); 
    101                 Database db = getDatabase(); 
    102                  
     100 
    103101                t.set_var(      "tc.selectoffizier",    1, 
    104102                                        "tc.mode",                              mode ); 
     
    106104                t.set_block( "_TC", "tc.offiziere.listitem", "tc.offiziere.list" ); 
    107105                 
    108                 SQLQuery offiRow = db.query("SELECT * FROM offiziere WHERE dest='",dest," ",destid,"'"); 
    109                 while( offiRow.next() ) { 
    110                         Offizier offi = new Offizier( offiRow.getRow() ); 
     106                List<Offizier> offiList = getContext().query("from Offizier where dest='"+dest+" "+destid+"'", Offizier.class); 
     107                for( Offizier offi : offiList ) { 
    111108                        t.set_var(      "tc.offizier.picture",          offi.getPicture(), 
    112109                                                "tc.offizier.id",                       offi.getID(), 
     
    121118                        t.parse( "tc.offiziere.list", "tc.offiziere.listitem", true ); 
    122119                } 
    123                 offiRow.free(); 
    124120        } 
    125121 
     
    222218                } 
    223219                 
    224                 if( (offizier == null) || (offizier.getOwner() != user.getID()) ) { 
     220                if( (offizier == null) || (offizier.getOwner() != user) ) { 
    225221                        addError("Der angegebene Offizier existiert nicht oder geh&ouml;rt nicht ihnen", errorurl); 
    226222                        setTemplate(""); 
     
    246242                } 
    247243         
     244                User tarUser = (User)getDB().get(User.class, tarShip.getInt("owner")); 
     245                 
    248246                // Transfer! 
    249247                offizier.setDest( "s", tarShip.getInt("id") ); 
    250                 offizier.setOwner( tarShip.getInt("owner") ); 
     248                offizier.setOwner( tarUser ); 
    251249                offizier.save(); 
    252250         
     
    308306                } 
    309307 
    310                 if( (offizier == null) || (offizier.getOwner() != user.getID()) ) { 
     308                if( (offizier == null) || (offizier.getOwner() != user) ) { 
    311309                        addError("Der angegebene Offizier existiert nicht oder geh&ouml;rt nicht ihnen", errorurl); 
    312310                        setTemplate(""); 
     
    331329                        return; 
    332330                } 
     331                 
     332                User tarUser = (User)getDB().get(User.class, tarBase.getInt("owner")); 
    333333 
    334334                // Transfer ! 
    335335                offizier.setDest( "b", tarBase.getInt("id") ); 
    336                 offizier.setOwner( tarBase.getInt("owner") ); 
     336                offizier.setOwner( tarUser ); 
    337337                offizier.save(); 
    338338         
     
    367367                                        "tc.target",                    upBase.getInt("id") ); 
    368368                                                         
    369                 List<Offizier> offilist = new ArrayList<Offizier>(); 
    370          
    371                 SQLQuery offiRow = db.query("SELECT * FROM offiziere WHERE dest='b ",upBase.getInt("id"),"'"); 
    372                 while( offiRow.next() ){ 
    373                         offilist.add(new Offizier(offiRow.getRow())); 
    374                 } 
    375                 offiRow.free(); 
     369                List<Offizier> offilist = getContext().query("from Offizier where dest='b "+upBase.getInt("id")+"'", Offizier.class); 
    376370 
    377371                int shipcount = 0; 
     
    448442                //ein Offizier wurde ausgewaehlt -> transferieren 
    449443                else { 
    450                         String ch = db.first("SELECT dest FROM offiziere WHERE id=",off).getString("dest"); 
    451                         if( !ch.equals("b "+upBase.getInt("id")) ) { 
     444                        Offizier offizier = (Offizier)getDB().get(Offizier.class, off); 
     445                        if( (offizier == null) || !offizier.getDest().equals("b "+upBase.getInt("id")) ) { 
    452446                                addError("Der angegebene Offizier ist nicht in der Basis stationiert", errorurl); 
    453447                                setTemplate(""); 
     
    459453                        SQLResultRow tarShipType = ShipTypes.getShipType(ship); 
    460454         
    461                         int offi = db.first("SELECT count(*) count FROM offiziere WHERE dest='s ",ship.getInt("id"),"'").getInt("count"); 
     455                        int offi = (Integer)getDB().createQuery("select count(*) from Offizier where dest=?") 
     456                                .setString(0, "s "+ship.getInt("id")) 
     457                                .iterate().next(); 
     458                         
    462459                        int maxoffis = 1; 
    463460                        if( ShipTypes.hasShipTypeFlag(tarShipType, ShipTypes.SF_OFFITRANSPORT) ) { 
     
    472469                        } 
    473470                         
    474                         SQLResultRow offizierRow = db.first("SELECT * FROM offiziere WHERE id=",off); 
    475                         Offizier offizier = new Offizier( offizierRow ); 
    476471                        t.set_var("tc.offizier.name",Common._plaintitle(offizier.getName())); 
    477472                                 
  • src/net/driftingsouls/ds2/server/scripting/QuestFunctions.java

    r3924571 r6d5d733  
    257257                                } 
    258258                                else if( value[1].equals("owner") ) { 
    259                                         val = offi.getOwner()
     259                                        val = offi.getOwner().getID()
    260260                                } 
    261261                                else if( value[1].equals("ability") ) { 
  • web/WEB-INF/cfg/hibernatemappings.xml

    re3938f6 r6d5d733  
    3434        <mapping class="net.driftingsouls.ds2.server.entities.JumpNode" /> 
    3535        <mapping class="net.driftingsouls.ds2.server.entities.Jump" /> 
    36         <!-- logging --
    37         <!-- nebel --
    38         <!-- offiziere [net.driftingsouls.ds2.server.Offizier migrieren]--
     36        <mapping class="net.driftingsouls.ds2.server.entities.LogEntry" /
     37        <mapping class="net.driftingsouls.ds2.server.entities.Nebel" /
     38        <mapping class="net.driftingsouls.ds2.server.Offizier" /
    3939        <!-- orders --> 
    4040        <!-- orders_offiziere -->