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

📄 xmlstoragevisitor.java

📁 基于Eclipse RCP开发的管理工具
💻 JAVA
字号:
 /*    * Copyright 2006 Marcel Schoffelmeer   *   * 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.  */package com.s10r.manager.model;import org.jdom.Document;import org.jdom.Element;import org.jdom.ProcessingInstruction;import com.s10r.util.DateUtil;public class XMLStorageVisitor implements DataVisitor{    private Document doc;    private Element entriesElem;	private Element labelsElem;    public XMLStorageVisitor()    {        doc = new Document();                addStyleSheetRef();        Element rootElement = new Element("content");        doc.addContent(rootElement);        entriesElem = new Element("entries");        labelsElem = new Element("labels");        rootElement.addContent(entriesElem);        rootElement.addContent(labelsElem);    }    private void addStyleSheetRef()    {        doc.addContent(new ProcessingInstruction("xml-stylesheet",                "type='text/css' href='stylesheet.css'"));    }    public void visit(PasswordEntry entry)    {        Element entryElem = new Element("entry");        addChildElem(entryElem, Storage.NAME_TAG, entry.getName());        addChildElem(entryElem, Storage.ID_TAG, entry.getId());        addChildElem(entryElem, Storage.PASSWORD_TAG, entry.getPassword());        addChildElem(entryElem, Storage.DESCRIPTION_TAG, entry.getDescription());        addChildElem(entryElem, Storage.USAGECNT_TAG, entry.getUsageCnt());        if (entry.getCreated() != null)        {            addChildElem(entryElem, Storage.CREATED_TAG,                    DateUtil.format(entry.getCreated()));        }        if (entry.getLastUsed() != null)        {            addChildElem(entryElem, Storage.LASTUSED_TAG,                    DateUtil.format(entry.getLastUsed()));        }        if (entry.getLastUpdated() != null)        {            addChildElem(entryElem, Storage.LASTUPDATED_TAG,                    DateUtil.format(entry.getLastUpdated()));        }        if (entry.getLastUpdatedOnSite() != null)        {            addChildElem(entryElem, Storage.LASTUPDATEDONSITE_TAG,                    DateUtil.format(entry.getLastUpdatedOnSite()));        }        if (entry.getUrl() != null)        {            addChildElem(entryElem, Storage.URL_TAG, entry.getUrl());        }                for (ItemLabel label: entry.getLabels())        {        	addChildElem(entryElem, Storage.LABEL_TAG, label.getName());        }        entriesElem.addContent(entryElem);    }    private void addChildElem(Element entryElem, String tag, int value)    {        addChildElem(entryElem, tag, "" + value);    }    private void addChildElem(Element entryElem, String tag, String value)    {        Element elem = new Element(tag);        elem.setText(value);        entryElem.addContent(elem);    }    public Document getDocument()    {        return doc;    }	public void visit(ItemLabel label)	{        Element labelElem = new Element("label");        // TODO: remove duplication from entry visit method                addChildElem(labelElem, Storage.NAME_TAG, label.getName());        addChildElem(labelElem, Storage.DESCRIPTION_TAG, label.getDescription());        if (label.getCreated() != null)        {            addChildElem(labelElem, Storage.CREATED_TAG,                    DateUtil.format(label.getCreated()));        }        if (label.getLastUpdated() != null)        {            addChildElem(labelElem, Storage.LASTUPDATED_TAG,                    DateUtil.format(label.getLastUpdated()));        }                labelsElem.addContent(labelElem);	}}

⌨️ 快捷键说明

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