Ignore:
Timestamp:
05/28/11 11:46:34 (13 years ago)
Author:
gaba
Message:

querysetid,
bookmarksets structure

File:
1 edited

Legend:

Unmodified
Added
Removed
  • MDService2/trunk/MDService2/src/eu/clarin/cmdi/mdservice/action/WorkspaceAction.java

    r1350 r1384  
    9191        // save element type
    9292        public static String SE_WORKSPACE = "workspace";
     93        public static String SE_QUERYSET = "queryset";
    9394        public static String SE_QUERY = "query";
     95        public static String SE_BOOKMARKSET = "bookmarkset";
     96        public static String SE_BOOKMARK = "bookmark";
    9497       
    9598        // administration query identification
     
    456459            nodelist.item(0).setTextContent(to_id);
    457460        }
    458         public String createNewQid(){
    459                 String id = workspace_doc.getElementsByTagName("maxqid").item(0).getTextContent();
     461        public String createNewId(String name){
     462                String id = workspace_doc.getElementsByTagName(name).item(0).getTextContent();
    460463                Integer i = Integer.parseInt(id) + 1;
    461464                id = i.toString();
    462                 workspace_doc.getElementsByTagName("maxqid").item(0).setTextContent(id);
     465                workspace_doc.getElementsByTagName(name).item(0).setTextContent(id);
    463466                return id.toString();
    464467        }
     468        /*
     469        public String createNewQsid(){
     470                String id = workspace_doc.getElementsByTagName("maxqsid").item(0).getTextContent();
     471                Integer i = Integer.parseInt(id) + 1;
     472                id = i.toString();
     473                workspace_doc.getElementsByTagName("maxqsid").item(0).setTextContent(id);
     474                return id.toString();
     475        }
     476        */
    465477        public InputStream createStream(String value) throws TransformerException, TransformerFactoryConfigurationError, ParserConfigurationException, UnsupportedEncodingException{
    466478        DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance();
     
    502514                String rootname = "WorkspaceProfile";
    503515                if (this.elementtype.equals(WorkspaceAction.SE_QUERY)){
    504                         rootname = "Query";
     516                        rootname = "item";
     517                }
     518                if (this.elementtype.equals(WorkspaceAction.SE_QUERYSET)){
     519                        rootname = "item";
    505520                }
    506521                return rootname;
     
    530545                        Node node = new_doc.getFirstChild();
    531546                        if (this.qid.equals("0")){
    532                                 newid = createNewQid(); 
     547                                newid = createNewId("maxqid");   
    533548                                new_doc.getElementsByTagName("id").item(0).setTextContent(newid);
    534549                        Element root = workspace_doc.getDocumentElement();
     
    536551                        node2 = workspace_doc.renameNode(node2, "", "item");
    537552                   // apend to specific queryset
    538                                 NodeList wsnodelist = (NodeList) getQueryset();
     553                                NodeList wsnodelist = (NodeList) getQueryParent();
    539554                        wsnodelist.item(0).appendChild(node2);
    540555                        }
     
    559574                        }
    560575                }
     576                if (this.elementtype.equals(WorkspaceAction.SE_BOOKMARK)){
     577                        // new bookmark
     578                                                Node node = new_doc.getFirstChild();
     579                                                if (this.qid.equals("0")){
     580                                                        newid = createNewId("maxbid");   
     581                                                        new_doc.getElementsByTagName("id").item(0).setTextContent(newid);
     582                                                Element root = workspace_doc.getDocumentElement();
     583                                                Node node2 = workspace_doc.adoptNode(node.cloneNode(true));
     584                                                node2 = workspace_doc.renameNode(node2, "", "item");
     585                                           // apend to specific bookmarkset
     586                                                        NodeList wsnodelist = (NodeList) getBookmarkParent();
     587                                                wsnodelist.item(0).appendChild(node2);
     588                                                }
     589                                               
     590                                                else {
     591                                                        // edit existing query
     592                                                        NodeList wsnodelist = (NodeList) getQuery();
     593                                                // remove
     594                                                //childeNode
     595                                                if (wsnodelist.getLength() > 0){
     596                                                        //Element root = workspace_doc.getDocumentElement();
     597                                                        Node node2 = workspace_doc.adoptNode(node.cloneNode(true));
     598                                                        node2 = workspace_doc.renameNode(node2, "", "item");
     599                                                        Node qnode  = (Node)wsnodelist.item(0);
     600                                                        //root.replaceChild(node2,(Node)wsnodelist.item(0));   
     601                                                       
     602                                                        Element parentElement = (Element)qnode.getParentNode();
     603                                                                parentElement.insertBefore(node2, qnode);
     604                                                                qnode.getParentNode().removeChild(qnode);
     605                                                                parentElement.normalize();
     606                                                }
     607                                                }
     608                                        }
     609                //new queryset
     610                if (this.elementtype.equals(WorkspaceAction.SE_QUERYSET)){
     611                        // new queryset
     612                                                Node node = new_doc.getFirstChild();
     613                                                if (this.qsid.equals("0")){
     614                                                        newid = createNewId("maxqsid"); 
     615                                                        new_doc.getElementsByTagName("id").item(0).setTextContent(newid);
     616                                                Element root = workspace_doc.getDocumentElement();
     617                                                Node node2 = workspace_doc.adoptNode(node.cloneNode(true));
     618                                                node2 = workspace_doc.renameNode(node2, "", "item");
     619                                           // apend to specific querysets
     620                                                NodeList wsnodelist = (NodeList) this.getWorkspace();
     621                                                Element welem = (Element)wsnodelist.item(0);
     622                                                        welem.getElementsByTagName("Querysets").item(0).appendChild(node2);
     623                                                }
     624                                               
     625                                                else {
     626                                                        // edit existing queryset
     627                                                        NodeList wsnodelist = (NodeList) getQueryset();
     628                                                // remove
     629                                                //childeNode
     630                                                if (wsnodelist.getLength() > 0){
     631                                                        //Element root = workspace_doc.getDocumentElement();
     632                                                        Node node2 = workspace_doc.adoptNode(node.cloneNode(true));
     633                                                        node2 = workspace_doc.renameNode(node2, "", "item");
     634                                                        Node qset  = (Node)wsnodelist.item(0);
     635                                                       
     636                                                        Element parentElement = (Element)qset.getParentNode();
     637                                                                parentElement.insertBefore(node2, qset);
     638                                                                qset.getParentNode().removeChild(qset);
     639                                                                parentElement.normalize();
     640                                                }
     641                                                }
     642                                        }
     643               
     644                //new bookmarkset
     645                if (this.elementtype.equals(WorkspaceAction.SE_BOOKMARKSET)){
     646                        // new queryset
     647                                                Node node = new_doc.getFirstChild();
     648                                                if (this.qsid.equals("0")){
     649                                                        newid = createNewId("maxbsid"); 
     650                                                        new_doc.getElementsByTagName("id").item(0).setTextContent(newid);
     651                                                Element root = workspace_doc.getDocumentElement();
     652                                                Node node2 = workspace_doc.adoptNode(node.cloneNode(true));
     653                                                node2 = workspace_doc.renameNode(node2, "", "item");
     654                                           // apend to specific querysets
     655                                                NodeList wsnodelist = (NodeList) this.getWorkspace();
     656                                                Element welem = (Element)wsnodelist.item(0);
     657                                                        welem.getElementsByTagName("Bookmarksets").item(0).appendChild(node2);
     658                                                }
     659                                               
     660                                                else {
     661                                                        // edit existing bookmarkset
     662                                                        NodeList wsnodelist = (NodeList) getBookmarkset();
     663                                                // remove
     664                                                //childeNode
     665                                                if (wsnodelist.getLength() > 0){
     666                                                        //Element root = workspace_doc.getDocumentElement();
     667                                                        Node node2 = workspace_doc.adoptNode(node.cloneNode(true));
     668                                                        node2 = workspace_doc.renameNode(node2, "", "item");
     669                                                        Node qset  = (Node)wsnodelist.item(0);
     670                                                       
     671                                                        Element parentElement = (Element)qset.getParentNode();
     672                                                                parentElement.insertBefore(node2, qset);
     673                                                                qset.getParentNode().removeChild(qset);
     674                                                                parentElement.normalize();
     675                                                }
     676                                                }
     677                                        }
    561678                return newid;
    562679        }
    563680       
    564         //todo
     681        //todo .has("Queries")
    565682        public void parseDataInit(JSONObject json){
    566683                // workspaceelement
    567                 if (json.containsKey("Querysets")) {
     684                if (json.has("Querysets")) {
    568685                        this.setQid("0");
    569686                        this.setElementtype(WorkspaceAction.SE_WORKSPACE);
    570687                } else {
    571                         // Queryelement
    572                         this.setElementtype(WorkspaceAction.SE_QUERY);
    573                         this.setQid(json.getString("id"));
    574                         //this.//
     688                        // Querysetelement
     689                        if (json.has("Queries")) {
     690                                this.setElementtype(WorkspaceAction.SE_QUERYSET);
     691                                this.setQsid(json.getString("id"));
     692                        } else {
     693                                if (json.has("Bookmarks")) {
     694                                        this.setElementtype(WorkspaceAction.SE_BOOKMARKSET);
     695                                        this.setQsid(json.getString("id"));
     696                                } else {
     697                                        // Query-Bookmark-element
     698                                        if (json.getString("bookmark").equals("1")) {
     699                                                this.setElementtype(WorkspaceAction.SE_BOOKMARK);
     700                                        } else {
     701                                                // Queryelement
     702                                                this.setElementtype(WorkspaceAction.SE_QUERY);
     703                                        }
     704                                        this.setQid(json.getString("id"));
     705                                }
     706                        }
    575707                }
    576708
     
    741873            XPathExpression expr;
    742874                        expr = xpath.compile("//Profiles/WorkspaceProfiles/WorkspaceProfile/Querysets/item/Queries/item[id='" + this.qid + "']");
    743                 //expr = xpath.compile("//item[@id='" + this.qid + "']");
     875                                //expr = xpath.compile("//item[@id='" + this.qid + "']");
    744876                        //expression is evaluated with respect to a certain context node which is doc.
    745877                        Object result = null;
     
    753885        }
    754886
    755         public Object getQueryset() throws XPathExpressionException{
     887public Object getQueryParent() throws XPathExpressionException{
    756888               
    757889                XPathFactory factory = XPathFactory.newInstance();
    758890            XPath xpath = factory.newXPath();
    759891            XPathExpression expr;
    760                         expr = xpath.compile("//Profiles/WorkspaceProfiles/WorkspaceProfile/Querysets/item[name='" + this.qsid + "']/Queries");
     892                        expr = xpath.compile("//Profiles/WorkspaceProfiles/WorkspaceProfile/Querysets/item[id='" + this.qsid + "']/Queries");
    761893                        //expression is evaluated with respect to a certain context node which is doc.
    762894                        Object result = null;
     
    769901             return result;
    770902        }
    771 
     903        public Object getQueryset() throws XPathExpressionException{
     904               
     905                XPathFactory factory = XPathFactory.newInstance();
     906            XPath xpath = factory.newXPath();
     907            XPathExpression expr;
     908                        expr = xpath.compile("//Profiles/WorkspaceProfiles/WorkspaceProfile/Querysets/item[id='" + this.qsid + "']");
     909                        //expression is evaluated with respect to a certain context node which is doc.
     910                        Object result = null;
     911                        try{
     912                        result = expr.evaluate(workspace_doc, XPathConstants.NODESET);
     913                        } catch(Exception e){
     914                               
     915                        }
     916
     917             return result;
     918        }
     919
     920        public Object getBookmarkParent() throws XPathExpressionException{
     921               
     922                XPathFactory factory = XPathFactory.newInstance();
     923            XPath xpath = factory.newXPath();
     924            XPathExpression expr;
     925                        expr = xpath.compile("//Profiles/WorkspaceProfiles/WorkspaceProfile/Bookmarksets/item[id='" + this.qsid + "']/Bookmarks");
     926                        //expression is evaluated with respect to a certain context node which is doc.
     927                        Object result = null;
     928                        try{
     929                        result = expr.evaluate(workspace_doc, XPathConstants.NODESET);
     930                        } catch(Exception e){
     931                               
     932                        }
     933
     934             return result;
     935        }
     936       
     937        public Object getBookmarkset() throws XPathExpressionException{
     938               
     939                XPathFactory factory = XPathFactory.newInstance();
     940            XPath xpath = factory.newXPath();
     941            XPathExpression expr;
     942                        expr = xpath.compile("//Profiles/WorkspaceProfiles/WorkspaceProfile/Bookmarksets/item[id='" + this.qsid + "']");
     943                        //expression is evaluated with respect to a certain context node which is doc.
     944                        Object result = null;
     945                        try{
     946                        result = expr.evaluate(workspace_doc, XPathConstants.NODESET);
     947                        } catch(Exception e){
     948                               
     949                        }
     950
     951             return result;
     952        }
     953
     954       
    772955        @Override
    773956        public void prepare() throws Exception {               
Note: See TracChangeset for help on using the changeset viewer.