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

📄 xwikidocument.java

📁 xwiki 源码
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
        for (int j=0;j<objects.size();j++) {
            BaseObject bobject = (BaseObject) objects.get(j);
            if (bobject==null)
                continue;
            for (Iterator renameit = fieldsToRename.keySet().iterator();renameit.hasNext();) {
                String origname = (String)renameit.next();
                String newname = (String) fieldsToRename.get(origname);
                BaseProperty origprop = (BaseProperty) bobject.safeget(origname);
                if (origprop!=null) {
                    BaseProperty prop = (BaseProperty) origprop.clone();
                    bobject.removeField(origname);
                    prop.setName(newname);
                    bobject.addField(newname, prop);
                }
            }
        }
    }

    public void addObjectsToRemove(BaseObject object) {
        getObjectsToRemove().add(object);
    }

    public ArrayList getObjectsToRemove() {
        return objectsToRemove;
    }

    public void setObjectsToRemove(ArrayList objectsToRemove) {
        this.objectsToRemove = objectsToRemove;
    }

    public List getIncludedPages(XWikiContext context) {
        try {
            String pattern = "#include(Topic|Form|Macros)\\(\"(.*?)\"\\)";
            List list = context.getUtil().getMatches(getContent(), pattern, 2);
            for (int i=0;i<list.size();i++) {
                try {
                    String name = (String)list.get(i);
                    if (name.indexOf(".")==-1) {
                        list.set(i, getWeb() + "." + name);
                    }
                } catch (Exception e) {
                    // This should never happen
                    e.printStackTrace();
                    return null;
                }
            }

            return list;
        } catch (Exception e) {
            // This should never happen
            e.printStackTrace();
            return null;
        }
    }

    public List getIncludedMacros(XWikiContext context) {
        return context.getWiki().getIncludedMacros(getWeb(), getContent(), context);
    }

    public List getLinkedPages(XWikiContext context) {
        try {
            String pattern = "\\[(.*?)\\]";
            List newlist = new ArrayList();
            List list = context.getUtil().getMatches(getContent(), pattern, 1);
            for (int i=0;i<list.size();i++) {
                try {
                    String name = (String)list.get(i);
                    int i1 = name.indexOf(">");
                    if (i1!=-1) {
                        name = name.substring(i1+1);
                    }
                    i1 = name.indexOf("&gt;");
                    if (i1!=-1) {
                        name = name.substring(i1+4);
                    }
                    i1 = name.indexOf("#");
                    if (i1!=-1) {
                        name = name.substring(0,i1);
                    }
                    i1 = name.indexOf("?");
                    if (i1!=-1) {
                        name = name.substring(0,i1);
                    }

                    // Let's get rid of anything that's not a real link
                    if (name.trim().equals("")||(name.indexOf("$")!=-1)||(name.indexOf("://")!=-1)
                            ||(name.indexOf("\"")!=-1)||(name.indexOf("\'")!=-1)
                            ||(name.indexOf("..")!=-1)||(name.indexOf(":")!=-1)||(name.indexOf("=")!=-1))
                        continue;

                    // generate the link
                    Util util = context.getUtil();
                    String newname = StringUtils.replace( util.noaccents(name), " ", "");

                    // If it is a local link let's add the space
                    if (newname.indexOf(".")==-1) {
                        newname = getWeb() + "." + name;
                    }
                    if (context.getWiki().exists(newname, context)) {
                        name = newname;
                    } else {
                        // If it is a local link let's add the space
                        if (name.indexOf(".")==-1) {
                            name = getWeb() + "." + name;
                        }
                    }

                    // Let's finally ignore the autolinks
                    if (!name.equals(getFullName()))
                        newlist.add(name);

                } catch (Exception e) {
                    // This should never happen
                    e.printStackTrace();
                    return null;
                }
            }

            return newlist;
        } catch (Exception e) {
            // This should never happen
            e.printStackTrace();
            return null;
        }
    }

    public String displayRendered(PropertyClass pclass, String prefix, BaseCollection object, XWikiContext context) {
        String result = pclass.displayView(pclass.getName(), prefix, object, context);
        return getRenderedContent(result, context);
    }

    public String displayView(PropertyClass pclass, String prefix, BaseCollection object, XWikiContext context) {
        return (pclass==null) ? "" : pclass.displayView(pclass.getName(), prefix, object, context);
    }

    public String displayEdit(PropertyClass pclass, String prefix, BaseCollection object, XWikiContext context) {
        return (pclass==null) ? "" : pclass.displayEdit(pclass.getName(), prefix, object, context);
    }

    public String displayHidden(PropertyClass pclass, String prefix, BaseCollection object, XWikiContext context) {
        return (pclass==null) ? "" : pclass.displayHidden(pclass.getName(), prefix, object, context);
    }

    public String displaySearch(PropertyClass pclass, String prefix, BaseCollection object, XWikiContext context) {
        return (pclass==null) ? "" : pclass.displaySearch(pclass.getName(), prefix, object, context);
    }

    public XWikiAttachment getAttachment(String filename) {
        List list = getAttachmentList();
        for (int i=0;i<list.size();i++) {
            XWikiAttachment attach = (XWikiAttachment) list.get(i);
            if (attach.getFilename().equals(filename)) {
                return attach;
            }
        }
        for (int i=0;i<list.size();i++) {
            XWikiAttachment attach = (XWikiAttachment) list.get(i);
            if (attach.getFilename().startsWith(filename + ".")) {
                return attach;
            }
        }
        return null;
    }

    public BaseObject getFirstObject(String fieldname) {
        Collection objectscoll = getxWikiObjects().values();
        if (objectscoll==null)
            return null;

        for (Iterator itobjs = objectscoll.iterator();itobjs.hasNext();) {
            Vector objects = (Vector)itobjs.next();
            for (Iterator itobjs2 = objects.iterator();itobjs2.hasNext();) {
                BaseObject obj = (BaseObject) itobjs2.next();
                if (obj!=null) {
                    Set set = obj.getPropertyList();
                    if ((set!=null)&&set.contains(fieldname))
                        return obj;
                }
            }
        }
        return null;
    }

    public int getIntValue(String className, String fieldName) {
        BaseObject obj = getObject(className, 0);
        if (obj==null)
            return 0;
        return obj.getIntValue(fieldName);
    }

    public long getLongValue(String className, String fieldName) {
        BaseObject obj = getObject(className, 0);
        if (obj==null)
            return 0;
        return obj.getLongValue(fieldName);
    }

    public String getStringValue(String className, String fieldName) {
        BaseObject obj = getObject(className);
        if (obj==null)
            return "";
        String result = obj.getStringValue(fieldName);
        if (result.equals(" "))
            return "";
        else
            return result;
    }

    public int getIntValue(String fieldName) {
        BaseObject object = getFirstObject(fieldName);
        if (object==null)
            return 0;
        else
            return object.getIntValue(fieldName);
    }

    public long getLongValue(String fieldName) {
        BaseObject object = getFirstObject(fieldName);
        if (object==null)
            return 0;
        else
            return object.getLongValue(fieldName);
    }

    public String getStringValue(String fieldName) {
        BaseObject object = getFirstObject(fieldName);
        if (object==null)
            return "";

        String result = object.getStringValue(fieldName);
        if (result.equals(" "))
            return "";
        else
            return result;
    }


    public void setStringValue(String className, String fieldName, String value) {
        BaseObject bobject = getObject(className);
        if (bobject==null) {
            bobject = new BaseObject();
            addObject(className, bobject);
        }
        bobject.setName(getFullName());
        bobject.setClassName(className);
        bobject.setStringValue(fieldName, value);
    }

    public void setLargeStringValue(String className, String fieldName, String value) {
        BaseObject bobject = getObject(className);
        if (bobject==null) {
            bobject = new BaseObject();
            addObject(className, bobject);
        }
        bobject.setName(getFullName());
        bobject.setClassName(className);
        bobject.setLargeStringValue(fieldName, value);
    }

    public void setIntValue(String className, String fieldName, int value) {
        BaseObject bobject = getObject(className);
        if (bobject==null) {
            bobject = new BaseObject();
            addObject(className, bobject);
        }
        bobject.setName(getFullName());
        bobject.setClassName(className);
        bobject.setIntValue(fieldName, value);
    }


    public String getDatabase() {
        return database;
    }

    public void setDatabase(String database) {
        this.database = database;
    }


    public void setFullName(String fullname, XWikiContext context) throws XWikiException {
        if (fullname==null)
            return;

        int i0 = fullname.lastIndexOf(":");
        int i1 = fullname.lastIndexOf(".");

        if (i0!=-1) {
            database = fullname.substring(0,i0);
            web = fullname.substring(i0+1,i1);
            name = fullname.substring(i1+1);
        } else {
            if (i1==-1) {
                try {
                    web = context.getDoc().getWeb();
                } catch (Exception e) {
                    web = "XWiki";
                }
                name = fullname;
            } else {
                web = fullname.substring(0,i1);
                name = fullname.substring(i1+1);
            }
        }

        if (name.equals(""))
            name = "WebHome";

        /*
        // Now anything is allowed..
        Util util = context.getUtil();
        if ((!util.isAlphaNumeric(name))||(!util.isAlphaNumeric(web))) {
        Object[] args = { fullname };
        throw new XWikiException( XWikiException.MODULE_XWIKI_APP, XWikiException.ERROR_XWIKI_APP_INVALID_CHARS,
        "Document name {0} contains invalid characters", null, args);
        }
        */

    }

    public String getLanguage() {
        if (language==null)
            return "";
        else
            return language.trim();
    }

    public void setLanguage(String language) {
        this.language = language;
    }

    public String getDefaultLanguage() {
        if (defaultLanguage==null)
            return "";
        else
            return defaultLanguage.trim();
    }

    public void setDefaultLanguage(String defaultLanguage) {
        this.defaultLanguage = defaultLanguage;
    }

    public int getTranslation() {
        return translation;
    }

    public void setTranslation(int translation) {
        this.translation = translation;
    }

    public String getTranslatedContent(XWikiContext context) throws XWikiException {
        String language = context.getWiki().getLanguagePreference(context);
        return getTranslatedContent(language, context);
    }

    public String getTranslatedContent(String language, XWikiContext context) throws XWikiException {
        XWikiDocument tdoc = getTranslatedDocument(language, context);
        String rev = (String)context.get("rev");
        if ((rev==null)||(rev.length()==0))
            return tdoc.getContent();

        XWikiDocument cdoc = context.getWiki().getDocument(tdoc, rev, context);
        return cdoc.getContent();
    }

    public XWikiDocument getTranslatedDocument(XWikiContext context) throws XWikiException {
        String language = context.getWiki().getLanguagePreference(context);
        return getTranslatedDocument(language, context);
    }

    public XWikiDocument getTranslatedDocument(String language, XWikiContext context) throws XWikiException {
        XWikiDocument tdoc = this;

        if (!((language==null)||(language.equals(""))||language.equals(defaultLanguage))) {
            tdoc = new XWikiDocument(getWeb(), getName());
            tdoc.setLanguage(language);
            String data

⌨️ 快捷键说明

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