registryupdateaction.java
来自「jetspeed源代码」· Java 代码 · 共 1,199 行 · 第 1/3 页
JAVA
1,199 行
/**
* Add a media type to a registry entry
* @param rundata The turbine rundata context for this request.
* @param context The velocity context for this request.
* @throws Exception
*/
public void doAddmediatype(RunData rundata, Context context)
throws Exception
{
try
{
String entryName =
rundata.getParameters().getString(registryEntryName);
PortletInfoEntry portletEntry =
(PortletInfoEntry) Registry.getEntry(registry, entryName);
if (portletEntry != null)
{
String mediaType =
rundata.getParameters().getString("media_type");
if (mediaType != null && mediaType.length() > 0)
{
portletEntry.addMediaType(mediaType);
Registry.addEntry(registry, portletEntry);
clearUserData(rundata);
}
else
{
DynamicURI duri =
redirect(
rundata,
SecurityConstants.PARAM_MODE_UPDATE,
SecurityConstants.MID_MISSING_PARAMETER);
rundata.setRedirectURI(duri.toString());
resetForm(rundata);
}
}
else
{
DynamicURI duri =
redirect(
rundata,
SecurityConstants.PARAM_MODE_UPDATE,
SecurityConstants.MID_INVALID_ENTITY_NAME);
rundata.setRedirectURI(duri.toString());
resetForm(rundata);
logger.error(
this.getClass().getName()
+ ": Failed to find registry entry while trying to add media type");
}
}
catch (Exception e)
{
DynamicURI duri =
redirect(
rundata,
SecurityConstants.PARAM_MODE_UPDATE,
SecurityConstants.MID_UPDATE_FAILED);
rundata.setRedirectURI(duri.toString());
resetForm(rundata);
logger.error("Exception", e);
}
}
/**
* Remove media types from a registry entry
* @param rundata The turbine rundata context for this request.
* @param context The velocity context for this request.
* @throws Exception
*/
public void doRemovemediatypes(RunData rundata, Context context)
throws Exception
{
try
{
String entryName =
rundata.getParameters().getString(registryEntryName);
PortletInfoEntry portletEntry =
(PortletInfoEntry) Registry.getEntry(registry, entryName);
if (portletEntry != null)
{
String[] mediaTypes =
rundata.getParameters().getStrings("media_type");
if (mediaTypes != null && mediaTypes.length > 0)
{
for (int i = 0; i < mediaTypes.length; i++)
{
String mediaType = mediaTypes[i];
portletEntry.removeMediaType(mediaType);
}
Registry.addEntry(registry, portletEntry);
clearUserData(rundata);
}
else
{
DynamicURI duri =
redirect(
rundata,
SecurityConstants.PARAM_MODE_UPDATE,
SecurityConstants.MID_MISSING_PARAMETER);
rundata.setRedirectURI(duri.toString());
resetForm(rundata);
}
}
else
{
DynamicURI duri =
redirect(
rundata,
SecurityConstants.PARAM_MODE_UPDATE,
SecurityConstants.MID_INVALID_ENTITY_NAME);
rundata.setRedirectURI(duri.toString());
resetForm(rundata);
logger.error(
this.getClass().getName()
+ ": Failed to find registry entry while trying to remove media types");
}
}
catch (Exception e)
{
DynamicURI duri =
redirect(
rundata,
SecurityConstants.PARAM_MODE_UPDATE,
SecurityConstants.MID_UPDATE_FAILED);
rundata.setRedirectURI(duri.toString());
resetForm(rundata);
logger.error("Exception", e);
}
}
/**
* Add capabilities to a registry entry
* @param rundata The turbine rundata context for this request.
* @param context The velocity context for this request.
* @throws Exception
*/
public void doAddcapability(RunData rundata, Context context)
throws Exception
{
try
{
String entryName =
rundata.getParameters().getString(registryEntryName);
RegistryEntry regEntry = Registry.getEntry(registry, entryName);
if (regEntry != null)
{
CapabilityMap cm = null;
if (regEntry instanceof MediaTypeEntry)
{
MediaTypeEntry mediaTypeEntry = (MediaTypeEntry) regEntry;
cm = mediaTypeEntry.getCapabilityMap();
}
else if (regEntry instanceof ClientEntry)
{
ClientEntry clientEntry = (ClientEntry) regEntry;
cm = clientEntry.getCapabilityMap();
}
else
{
//TODO: throw error
}
if (cm != null)
{
String[] capabilities =
rundata.getParameters().getStrings("capability");
if (capabilities != null && capabilities.length > 0)
{
for (int i = 0; i < capabilities.length; i++)
{
String capability = capabilities[i];
if (cm.contains(capability))
{
}
else
{
if (capability != null
&& capability.length() > 0)
{
cm.addCapability(capability);
}
}
}
}
Registry.addEntry(registry, regEntry);
clearUserData(rundata);
}
else
{
DynamicURI duri =
redirect(
rundata,
SecurityConstants.PARAM_MODE_UPDATE,
SecurityConstants.MID_UPDATE_FAILED);
rundata.setRedirectURI(duri.toString());
resetForm(rundata);
}
}
else
{
DynamicURI duri =
redirect(
rundata,
SecurityConstants.PARAM_MODE_UPDATE,
SecurityConstants.MID_INVALID_ENTITY_NAME);
rundata.setRedirectURI(duri.toString());
resetForm(rundata);
logger.error(
this.getClass().getName()
+ ": Failed to find registry entry while trying to add capabilities");
}
}
catch (Exception e)
{
DynamicURI duri =
redirect(
rundata,
SecurityConstants.PARAM_MODE_UPDATE,
SecurityConstants.MID_UPDATE_FAILED);
rundata.setRedirectURI(duri.toString());
resetForm(rundata);
logger.error("Exception", e);
}
}
/**
* Remove capabilites from a registry entry
* @param rundata The turbine rundata context for this request.
* @param context The velocity context for this request.
* @throws Exception
*/
public void doRemovecapability(RunData rundata, Context context)
throws Exception
{
try
{
String entryName =
rundata.getParameters().getString(registryEntryName);
RegistryEntry regEntry = Registry.getEntry(registry, entryName);
if (regEntry != null)
{
CapabilityMap cm = null;
if (regEntry instanceof MediaTypeEntry)
{
MediaTypeEntry mediaTypeEntry = (MediaTypeEntry) regEntry;
cm = mediaTypeEntry.getCapabilityMap();
}
else if (regEntry instanceof ClientEntry)
{
ClientEntry clientEntry = (ClientEntry) regEntry;
cm = clientEntry.getCapabilityMap();
}
else
{
//TODO: throw error
}
if (cm != null)
{
String[] capabilities =
rundata.getParameters().getStrings("capability");
if (capabilities != null && capabilities.length > 0)
{
for (int i = 0; i < capabilities.length; i++)
{
String capability = capabilities[i];
cm.removeCapability(capability);
}
Registry.addEntry(registry, regEntry);
clearUserData(rundata);
}
Registry.addEntry(registry, regEntry);
clearUserData(rundata);
}
else
{
DynamicURI duri =
redirect(
rundata,
SecurityConstants.PARAM_MODE_UPDATE,
SecurityConstants.MID_UPDATE_FAILED);
rundata.setRedirectURI(duri.toString());
resetForm(rundata);
}
}
else
{
DynamicURI duri =
redirect(
rundata,
SecurityConstants.PARAM_MODE_UPDATE,
SecurityConstants.MID_INVALID_ENTITY_NAME);
rundata.setRedirectURI(duri.toString());
resetForm(rundata);
logger.error(
this.getClass().getName()
+ ": Failed to find registry entry while trying to remove capabilities");
}
}
catch (Exception e)
{
DynamicURI duri =
redirect(
rundata,
SecurityConstants.PARAM_MODE_UPDATE,
SecurityConstants.MID_UPDATE_FAILED);
rundata.setRedirectURI(duri.toString());
resetForm(rundata);
logger.error("Exception", e);
}
}
/**
* Method that sets up a redirect link given the rundata, the mode, and a reason
* @param rundata
* @param mode
* @param reason
* @return
* @throws TurbineException
*/
protected DynamicURI redirect(RunData rundata, String mode, int reason)
throws TurbineException
{
JetspeedLink link = JetspeedLinkFactory.getInstance(rundata);
DynamicURI duri =
link
.getPaneByName(pane)
.addPathInfo(SecurityConstants.PARAM_MODE, mode)
.addPathInfo(SecurityConstants.PARAM_MSGID, reason);
String entryName = rundata.getParameters().getString(registryEntryName);
if (entryName != null && entryName.length() > 0)
{
duri.addQueryData(registryEntryName, entryName);
}
JetspeedLinkFactory.putInstance(link);
return duri;
}
/**
* Remove any data that was added to the user's temporary storage
* @param rundata
*/
protected void clearUserData(RunData rundata)
{
rundata.getUser().removeTemp(registryEntryName);
rundata.getUser().removeTemp("title");
rundata.getUser().removeTemp("description");
}
/**
* Method to reset data entered into the forms
* @param rundata
*/
protected void resetForm(RunData rundata)
{
String entryName = rundata.getParameters().getString(registryEntryName);
String title = rundata.getParameters().getString("title");
String description = rundata.getParameters().getString("description");
rundata.getUser().setTemp(registryEntryName, entryName);
rundata.getUser().setTemp("title", title);
rundata.getUser().setTemp("description", description);
}
/**
* Turns an iterator into a collection
*
* @param iter An iterator
* @return the collection
*/
protected Collection iteratorToCollection(Iterator iter)
{
Collection collection = new ArrayList();
while (iter.hasNext())
{
collection.add(iter.next());
}
return collection;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?