📄 dbdataimport.java
字号:
private StringBuffer description = new StringBuffer();
private StringBuffer creationDate = new StringBuffer();
private StringBuffer modifiedDate = new StringBuffer();
private ContentHandler parentHandler;
/**
* Sets the parentHandler of the handler. Control will be passed back
* to the parent when this handler is done parsing the XML it knows
* how to handle.
*/
public void setParentHandler(DefaultHandler parentHandler) {
this.parentHandler = parentHandler;
// Reset values.
forum = null;
forumCreated = false;
doCreateForum = false;
isNameSet = false;
isDescriptionSet = false;
isCreationDateSet = false;
isModifiedDateSet = false;
name.setLength(0);
description.setLength(0);
creationDate.setLength(0);
modifiedDate.setLength(0);
}
public void addProperty(String name, String value) {
try {
forum.setProperty(name,value);
}
catch (UnauthorizedException ue) {
ue.printStackTrace();
}
catch (Exception e) {
print("Exception adding forum property, name=" + name +
", value=" + value);
e.printStackTrace();
}
}
public void startElement(String uri, String localName, String tag,
Attributes attribs)
throws SAXParseException
{
if (localName.equals("Name")) {
mode = NAME;
isNameSet = true;
}
else if (localName.equals("Description")) {
mode = DESCRIPTION;
isDescriptionSet = true;
}
else if (localName.equals("CreationDate")) {
mode = CREATION_DATE;
isCreationDateSet = true;
}
else if (localName.equals("ModifiedDate")) {
mode = MODIFIED_DATE;
isModifiedDateSet = true;
}
else if (localName.equals("PermissionList")) {
permissionListHandler.setParentHandler(this);
parser.setContentHandler(permissionListHandler);
}
else if (localName.equals("PropertyList")) {
propertyListHandler.setParentHandler(this);
propertyListHandler.setPropertyStore(this);
parser.setContentHandler(propertyListHandler);
}
else if (localName.equals("ThreadList")) {
threadListHandler.setParentHandler(this);
parser.setContentHandler(threadListHandler);
}
}
public void characters(char[] buf, int start, int length)
throws SAXParseException
{
switch (mode) {
case NAME:
name.append(buf, start, length);
break;
case DESCRIPTION:
description.append(buf, start, length);
break;
case CREATION_DATE:
creationDate.append(buf, start, length);
break;
case MODIFIED_DATE:
modifiedDate.append(buf, start, length);
break;
}
doCreateForum = (isNameSet && isCreationDateSet && isModifiedDateSet);
if (doCreateForum && !forumCreated) {
createForum();
forumCreated = true;
}
}
public void endElement(String uri, String localName, String tag)
throws SAXParseException
{
// reset the mode now -- (fixes whitespace padding)
mode = 0;
if (localName.equals("Forum")) {
// Let parent resume handling SAX events
parser.setContentHandler(parentHandler);
}
}
private void createForum() {
try {
// TODO: check to see if name or description is null
forum = forumFactory.createForum(name.toString(),description.toString());
Date cDate = parseDate(creationDate.toString());
Date mDate = parseDate(modifiedDate.toString());
forum.setCreationDate(cDate);
forum.setModifiedDate(mDate);
}
catch (ForumAlreadyExistsException faee) {
print("Forum \"" + name + "\" already exists.");
}
catch (Exception e) {
print("Error creating forum.");
e.printStackTrace();
}
}
}
/**
*
*/
private class PermissionListHandler extends DefaultHandler {
private ContentHandler parentHandler;
/**
* Sets the parentHandler of the handler. Control will be passed back
* to the parent when this handler is done parsing the XML it knows
* how to handle.
*/
public void setParentHandler(DefaultHandler parentHandler) {
this.parentHandler = parentHandler;
}
public void startElement(String uri, String localName, String tag,
Attributes attribs)
throws SAXParseException
{
if (localName.equals("UserPermissionList")) {
userPermissionListHandler.setParentHandler(this);
parser.setContentHandler(userPermissionListHandler);
}
else if (localName.equals("GroupPermissionList")) {
groupPermissionListHandler.setParentHandler(this);
parser.setContentHandler(groupPermissionListHandler);
}
}
public void endElement(String uri, String localName, String tag)
throws SAXParseException
{
parser.setContentHandler(parentHandler);
}
}
/**
*
*/
private class UserPermissionListHandler extends DefaultHandler {
private ContentHandler parentHandler;
/**
* Sets the parentHandler of the handler. Control will be passed back
* to the parent when this handler is done parsing the XML it knows
* how to handle.
*/
public void setParentHandler(DefaultHandler parentHandler) {
this.parentHandler = parentHandler;
}
public void startElement(String uri, String localName, String tag,
Attributes attribs)
throws SAXParseException
{
if (localName.equals("UserPermission")) {
String usertype = attribs.getValue("usertype");
String username = attribs.getValue("username");
String permission = attribs.getValue("permission");
// Add the permission to the jive system
User user = null;
//Now, grant the user permission
try {
int permType = ((Integer)jivePermissions.get(permission)).intValue();
if (usertype.equals("ANONYMOUS")) {
forum.getPermissionsManager().addAnonymousUserPermission(permType);
}
else if (usertype.equals("REGISTERED_USERS")) {
forum.getPermissionsManager().addRegisteredUserPermission(permType);
}
else {
try {
user = userManager.getUser(username);
forum.getPermissionsManager().addUserPermission(user,permType);
}
catch (UserNotFoundException unfe) {
print("User '" + username + "' not found, won't add user permission");
}
}
}
catch (UnauthorizedException e) {
print("Can't grant user permission, no authorization");
}
}
}
public void endElement(String uri, String localName, String tag)
throws SAXParseException
{
if (localName.equals("UserPermissionList")) {
parser.setContentHandler(parentHandler);
}
}
}
/**
*
*/
private class GroupPermissionListHandler extends DefaultHandler {
private ContentHandler parentHandler;
/**
* Sets the parentHandler of the handler. Control will be passed back
* to the parent when this handler is done parsing the XML it knows
* how to handle.
*/
public void setParentHandler(DefaultHandler parentHandler) {
this.parentHandler = parentHandler;
}
public void startElement(String uri, String localName, String tag,
Attributes attribs)
throws SAXParseException
{
if (localName.equals("GroupPermission")) {
String groupname = attribs.getValue("groupname");
String permission = attribs.getValue("permission");
// Add the permission to the jive system
Group group = null;
try {
group = groupManager.getGroup(groupname);
}
catch( GroupNotFoundException e ) {
}
// try to grant the group permission
try {
forum.getPermissionsManager().addGroupPermission(
group,
((Integer)jivePermissions.get(permission)).intValue()
);
}
catch (UnauthorizedException ue) {
print("Can't grant group permission, no authorization");
}
}
}
public void endElement(String uri, String localName, String tag)
throws SAXParseException
{
parser.setContentHandler(parentHandler);
}
}
/**
*
*/
private class ThreadListHandler extends DefaultHandler {
private ContentHandler parentHandler;
/**
* Sets the parentHandler of the handler. Control will be passed back
* to the parent when this handler is done parsing the XML it knows
* how to handle.
*/
public void setParentHandler(DefaultHandler parentHandler) {
this.parentHandler = parentHandler;
}
public void startElement(String uri, String localName, String tag,
Attributes attribs)
throws SAXParseException
{
if (localName.equals("Thread")) {
threadHandler.setParentHandler(this);
parser.setContentHandler(threadHandler);
}
}
public void endElement(String uri, String localName, String tag)
throws SAXParseException
{
parser.setContentHandler(parentHandler);
}
}
/**
*
*/
private class ThreadHandler extends DefaultHandler {
private StringBuffer creationDate = new StringBuffer();
private StringBuffer modifiedDate = new StringBuffer();
private ContentHandler parentHandler;
/**
* Sets the parentHandler of the handler. Control will be passed back
* to the parent when this handler is done parsing the XML it knows
* how to handle.
*/
public void setParentHandler(DefaultHandler parentHandler) {
this.parentHandler = parentHandler;
thread = null;
threadHasRootMessage = false;
creationDate.setLength(0);
modifiedDate.setLength(0);
}
public void addProperty( String name, String value ) {
try {
thread.setProperty(name,value);
}
catch (UnauthorizedException ue) {
ue.printStackTrace();
}
}
public void startElement(String uri, String localName, String tag,
Attributes attribs)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -