KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > db4o > cs > messages > MClassMeta


1 /* Copyright (C) 2004 - 2006 db4objects Inc. http://www.db4o.com
2
3 This file is part of the db4o open source object database.
4
5 db4o is free software; you can redistribute it and/or modify it under
6 the terms of version 2 of the GNU General Public License as published
7 by the Free Software Foundation and as clarified by db4objects' GPL
8 interpretation policy, available at
9 http://www.db4o.com/about/company/legalpolicies/gplinterpretation/
10 Alternatively you can write to db4objects, Inc., 1900 S Norfolk Street,
11 Suite 350, San Mateo, CA 94403, USA.
12
13 db4o is distributed in the hope that it will be useful, but WITHOUT ANY
14 WARRANTY; without even the implied warranty of MERCHANTABILITY or
15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 for more details.
17
18 You should have received a copy of the GNU General Public License along
19 with this program; if not, write to the Free Software Foundation, Inc.,
20 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */

21 package com.db4o.cs.messages;
22
23 import com.db4o.*;
24 import com.db4o.cs.ClassMeta;
25 import com.db4o.cs.YapServerThread;
26 import com.db4o.reflect.generic.GenericClass;
27
28 public class MClassMeta extends MsgObject {
29     public boolean processAtServer(YapServerThread serverThread) {
30         YapStream stream = stream();
31         unmarshall();
32         try{
33             ClassMeta classMeta = (ClassMeta) stream().unmarshall(_payLoad);
34             GenericClass genericClass = stream.getClassMetaHelper().classMetaToGenericClass(stream().reflector(), classMeta);
35             if (genericClass != null) {
36                 synchronized (streamLock()) {
37                     Transaction trans = stream.getSystemTransaction();
38                     YapWriter returnBytes = new YapWriter(trans, 0);
39     
40                     YapClass yapClass = stream.produceYapClass(genericClass);
41                     if (yapClass != null) {
42                         stream.checkStillToSet();
43                         yapClass.setStateDirty();
44                         yapClass.write(trans);
45                         trans.commit();
46                         returnBytes = stream
47                                 .readWriterByID(trans, yapClass.getID());
48                         serverThread.write(Msg.OBJECT_TO_CLIENT.getWriter(returnBytes));
49                         return true;
50                     }
51                 }
52             }
53         }catch(Exception JavaDoc e){
54             if(Debug.atHome){
55                 e.printStackTrace();
56             }
57         }
58         serverThread.write(Msg.FAILED);
59         return true;
60     }
61
62 }
63
Popular Tags