You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by ju...@apache.org on 2020/03/16 21:57:57 UTC
[jspwiki] 07/47: JSPWIKI-303: WikiContext and WikiPage implement
Context and Page respectively
This is an automated email from the ASF dual-hosted git repository.
juanpablo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jspwiki.git
commit c38bbac156f6748b400adcbd4c0830b3010bd8fd
Author: juanpablo <ju...@apache.org>
AuthorDate: Wed Mar 11 18:58:24 2020 +0100
JSPWIKI-303: WikiContext and WikiPage implement Context and Page respectively
---
.../src/main/java/org/apache/wiki/WikiContext.java | 32 ++++++++++++++++++----
.../src/main/java/org/apache/wiki/WikiPage.java | 24 ++++++++++++++--
2 files changed, 48 insertions(+), 8 deletions(-)
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/WikiContext.java b/jspwiki-main/src/main/java/org/apache/wiki/WikiContext.java
index 5830adc..adf5799 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/WikiContext.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/WikiContext.java
@@ -19,7 +19,9 @@
package org.apache.wiki;
import org.apache.log4j.Logger;
+import org.apache.wiki.api.core.Context;
import org.apache.wiki.api.core.Engine;
+import org.apache.wiki.api.core.Page;
import org.apache.wiki.api.core.Session;
import org.apache.wiki.auth.AuthorizationManager;
import org.apache.wiki.auth.NoSuchPrincipalException;
@@ -57,7 +59,7 @@ import java.util.PropertyPermission;
*
* @see org.apache.wiki.plugin.Counter
*/
-public class WikiContext implements Cloneable, Command {
+public class WikiContext implements Context, Command {
private Command m_command;
private WikiPage m_page;
@@ -303,9 +305,10 @@ public class WikiContext implements Cloneable, Command {
* @since 2.3.14
* @see org.apache.wiki.tags.InsertPageTag
*/
- public WikiPage setRealPage( final WikiPage page ) {
+ @Override
+ public WikiPage setRealPage( final Page page ) {
final WikiPage old = m_realPage;
- m_realPage = page;
+ m_realPage = ( WikiPage )page;
updateCommand( m_command.getRequestContext() );
return old;
}
@@ -323,6 +326,7 @@ public class WikiContext implements Cloneable, Command {
* @see org.apache.wiki.tags.InsertPageTag
* @see org.apache.wiki.parser.JSPWikiMarkupParser
*/
+ @Override
public WikiPage getRealPage()
{
return m_realPage;
@@ -334,6 +338,7 @@ public class WikiContext implements Cloneable, Command {
* @return A complete URL to the new page to redirect to
* @since 2.2
*/
+ @Override
public String getRedirectURL() {
final String pagename = m_page.getName();
String redirURL = m_engine.getManager( CommandResolver.class ).getSpecialPageReference( pagename );
@@ -354,6 +359,7 @@ public class WikiContext implements Cloneable, Command {
*
* @return The engine owning this context.
*/
+ @Override
public WikiEngine getEngine() {
return ( WikiEngine )m_engine;
}
@@ -363,6 +369,7 @@ public class WikiContext implements Cloneable, Command {
*
* @return the page which was fetched.
*/
+ @Override
public WikiPage getPage()
{
return m_page;
@@ -374,8 +381,9 @@ public class WikiContext implements Cloneable, Command {
* @param page The wikipage
* @since 2.1.37.
*/
- public void setPage( final WikiPage page ) {
- m_page = page;
+ @Override
+ public void setPage( final Page page ) {
+ m_page = (WikiPage)page;
updateCommand( m_command.getRequestContext() );
}
@@ -395,6 +403,7 @@ public class WikiContext implements Cloneable, Command {
*
* @param arg The request context (one of the predefined contexts.)
*/
+ @Override
public void setRequestContext( final String arg )
{
updateCommand( arg );
@@ -426,6 +435,7 @@ public class WikiContext implements Cloneable, Command {
* @param key The variable name.
* @return The variable contents.
*/
+ @Override
public Object getVariable( final String key )
{
return m_variableMap.get( key );
@@ -438,6 +448,7 @@ public class WikiContext implements Cloneable, Command {
* @param key The variable name.
* @param data The variable value.
*/
+ @Override
public void setVariable( final String key, final Object data ) {
m_variableMap.put( key, data );
updateCommand( m_command.getRequestContext() );
@@ -451,6 +462,7 @@ public class WikiContext implements Cloneable, Command {
* @param defValue Default value for the boolean
* @return {@code true} or {@code false}.
*/
+ @Override
public boolean getBooleanWikiProperty( final String key, final boolean defValue ) {
final Object bool = getVariable( key );
if( bool != null ) {
@@ -469,6 +481,7 @@ public class WikiContext implements Cloneable, Command {
* @param paramName Parameter name to look for.
* @return HTTP parameter, or null, if no such parameter existed.
*/
+ @Override
public String getHttpParameter( final String paramName ) {
String result = null;
if( m_request != null ) {
@@ -485,6 +498,7 @@ public class WikiContext implements Cloneable, Command {
* @return Null, if no HTTP request was done.
* @since 2.0.13.
*/
+ @Override
public HttpServletRequest getHttpRequest()
{
return m_request;
@@ -496,6 +510,7 @@ public class WikiContext implements Cloneable, Command {
* @param dir The template name
* @since 2.1.15.
*/
+ @Override
public void setTemplate( final String dir )
{
m_template = dir;
@@ -526,6 +541,7 @@ public class WikiContext implements Cloneable, Command {
* @since 2.1.15.
* @return template name
*/
+ @Override
public String getTemplate()
{
return m_template;
@@ -538,6 +554,7 @@ public class WikiContext implements Cloneable, Command {
*
* @return The current user; or maybe null in case of internal calls.
*/
+ @Override
public Principal getCurrentUser() {
if (m_session == null) {
// This shouldn't happen, really...
@@ -552,6 +569,7 @@ public class WikiContext implements Cloneable, Command {
* @param page The page to which to link.
* @return An URL to the page. This honours the current absolute/relative setting.
*/
+ @Override
public String getViewURL( final String page ) {
return getURL( VIEW, page, null );
}
@@ -563,6 +581,7 @@ public class WikiContext implements Cloneable, Command {
* @param page The page to which to link
* @return An URL to the page, honours the absolute/relative setting in jspwiki.properties
*/
+ @Override
public String getURL( final String context, final String page ) {
return getURL( context, page, null );
}
@@ -577,6 +596,7 @@ public class WikiContext implements Cloneable, Command {
*
* @return An URL to the given context and page.
*/
+ @Override
public String getURL( final String context, final String page, final String params ) {
// FIXME: is rather slow
return m_engine.getURL( context, page, params );
@@ -657,6 +677,7 @@ public class WikiContext implements Cloneable, Command {
*
* @return The Session associated with this context.
*/
+ @Override
public WikiSession getWikiSession() {
return ( WikiSession )m_session;
}
@@ -729,6 +750,7 @@ public class WikiContext implements Cloneable, Command {
* @since 2.4.46
* @return true, if the user has all permissions.
*/
+ @Override
public boolean hasAdminPermissions() {
return m_engine.getManager( AuthorizationManager.class ).checkPermission( getWikiSession(), new AllPermission( m_engine.getApplicationName() ) );
}
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/WikiPage.java b/jspwiki-main/src/main/java/org/apache/wiki/WikiPage.java
index 9dbc46b..6c8c973 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/WikiPage.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/WikiPage.java
@@ -19,6 +19,7 @@
package org.apache.wiki;
import org.apache.wiki.api.core.Engine;
+import org.apache.wiki.api.core.Page;
import org.apache.wiki.auth.acl.Acl;
import org.apache.wiki.auth.acl.AclEntry;
import org.apache.wiki.auth.acl.AclImpl;
@@ -38,7 +39,7 @@ import java.util.Map;
// author, date, etc. should also be part of the metadata. We also
// need to figure out the metadata lifecycle.
-public class WikiPage implements Cloneable, Comparable< WikiPage > {
+public class WikiPage implements Page, Comparable< WikiPage > {
private String m_name;
private Engine m_engine;
@@ -88,6 +89,7 @@ public class WikiPage implements Cloneable, Comparable< WikiPage > {
*
* @return The page name.
*/
+ @Override
public String getName()
{
return m_name;
@@ -103,6 +105,7 @@ public class WikiPage implements Cloneable, Comparable< WikiPage > {
* @param key The key using which the attribute is fetched
* @return The attribute. If the attribute has not been set, returns null.
*/
+ @Override
@SuppressWarnings( "unchecked" )
public < T > T getAttribute( final String key )
{
@@ -116,6 +119,7 @@ public class WikiPage implements Cloneable, Comparable< WikiPage > {
* @param key The key for the attribute used to fetch the attribute later on.
* @param attribute The attribute value
*/
+ @Override
public void setAttribute( final String key, final Object attribute )
{
m_attributes.put( key, attribute );
@@ -128,7 +132,8 @@ public class WikiPage implements Cloneable, Comparable< WikiPage > {
* @return The attribute Map. Please note that this is a direct
* reference, not a copy.
*/
- public Map< String, Object > getAttributes()
+ @Override
+ public Map< String, Object > getAttributes()
{
return m_attributes;
}
@@ -140,6 +145,7 @@ public class WikiPage implements Cloneable, Comparable< WikiPage > {
* @return If the attribute existed, returns the object.
* @since 2.1.111
*/
+ @Override
@SuppressWarnings( "unchecked" )
public < T > T removeAttribute( final String key )
{
@@ -151,6 +157,7 @@ public class WikiPage implements Cloneable, Comparable< WikiPage > {
*
* @return The last modification date
*/
+ @Override
public Date getLastModified()
{
return m_lastModified;
@@ -162,6 +169,7 @@ public class WikiPage implements Cloneable, Comparable< WikiPage > {
*
* @param date The date
*/
+ @Override
public void setLastModified( final Date date )
{
m_lastModified = date;
@@ -173,6 +181,7 @@ public class WikiPage implements Cloneable, Comparable< WikiPage > {
*
* @param version The version number
*/
+ @Override
public void setVersion( final int version )
{
m_version = version;
@@ -183,6 +192,7 @@ public class WikiPage implements Cloneable, Comparable< WikiPage > {
*
* @return the version number of this page.
*/
+ @Override
public int getVersion()
{
return m_version;
@@ -194,6 +204,7 @@ public class WikiPage implements Cloneable, Comparable< WikiPage > {
* @return the size of the page.
* @since 2.1.109
*/
+ @Override
public long getSize()
{
return m_fileSize;
@@ -205,6 +216,7 @@ public class WikiPage implements Cloneable, Comparable< WikiPage > {
* @param size The size of the page.
* @since 2.1.109
*/
+ @Override
public void setSize( final long size )
{
m_fileSize = size;
@@ -238,6 +250,7 @@ public class WikiPage implements Cloneable, Comparable< WikiPage > {
*
* @param author The author name.
*/
+ @Override
public void setAuthor( final String author )
{
m_author = author;
@@ -248,6 +261,7 @@ public class WikiPage implements Cloneable, Comparable< WikiPage > {
*
* @return Author name, or possibly null.
*/
+ @Override
public String getAuthor()
{
return m_author;
@@ -258,6 +272,7 @@ public class WikiPage implements Cloneable, Comparable< WikiPage > {
*
* @return The name of the wiki.
*/
+ @Override
public String getWiki()
{
return m_wiki;
@@ -266,6 +281,7 @@ public class WikiPage implements Cloneable, Comparable< WikiPage > {
/**
* This method will remove all metadata from the page.
*/
+ @Override
public void invalidateMetadata() {
m_hasMetadata = false;
setAcl( null );
@@ -280,6 +296,7 @@ public class WikiPage implements Cloneable, Comparable< WikiPage > {
*
* @return true, if the page has metadata.
*/
+ @Override
public boolean hasMetadata()
{
return m_hasMetadata;
@@ -288,6 +305,7 @@ public class WikiPage implements Cloneable, Comparable< WikiPage > {
/**
* Sets the metadata flag to true. Never call.
*/
+ @Override
public void setHasMetadata()
{
m_hasMetadata = true;
@@ -311,7 +329,7 @@ public class WikiPage implements Cloneable, Comparable< WikiPage > {
* @return A deep clone of the WikiPage
*/
@Override
- public Object clone() {
+ public WikiPage clone() {
final WikiPage p = new WikiPage( m_engine, m_name );
p.m_wiki = m_wiki;