📄 xmlstoragevisitor.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 + -