📄 xwikidocument.java
字号:
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(">");
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 + -