com.force.sdk.codegen.writer
Class ForceJPAFileWriterProvider

java.lang.Object
  extended by com.force.sdk.codegen.writer.ForceJPAFileWriterProvider
All Implemented Interfaces:
WriterProvider

public class ForceJPAFileWriterProvider
extends Object
implements WriterProvider

A WriterProvider which provides FileWriters for Force.com JPA enabled Java classes.

A ForceJPAFileWriterProvider cares about three pieces of state:

  1. A destination (project) directory
  2. A Java package name
  3. A Java class name
For example, if the destination directory is /home/tkral, the Java package name is com.force and the class name is TestClass, a ForceJPAFileWriterProvider will provide a FileWriter to the following file:

/home/tkral/com/force/TestClass.java A Java package name need not be specified explicitly. If no package name is provided, ForceJPAFileWriterProvider will create a package name based off of the callers Force.com store name (i.e. Organization name). Similarly, a Java class name need not be specified explicitly. If missing, ForceJPAFileWriterProvider will use the name from a Force.com DescribeSObjectResult object.

Author:
Tim Kral

Constructor Summary
ForceJPAFileWriterProvider(File destDir)
          Initalizes a ForceJPAFileWriterProvider to provide FileWriters to the given destination (project) directory.
 
Method Summary
 Writer getWriter(com.sforce.soap.partner.GetUserInfoResult userInfo, com.sforce.soap.partner.DescribeSObjectResult dsr)
          Returns a Java Writer for generated source code.
 void setClassName(String className)
          Sets the Java class name of the generate Java classes.
 void setPackageName(String packageName)
          Sets the Java package name under which the generated Java classes will be written.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ForceJPAFileWriterProvider

public ForceJPAFileWriterProvider(File destDir)
Initalizes a ForceJPAFileWriterProvider to provide FileWriters to the given destination (project) directory.

Parameters:
destDir - a Java File which represents a root project directory
Method Detail

setClassName

public void setClassName(String className)
Sets the Java class name of the generate Java classes.

If no class name is specified, one will be created based off of a Force.com DescribeSObjectResult object.

Parameters:
className - a non null String which conforms to Java class naming standards

setPackageName

public void setPackageName(String packageName)
Sets the Java package name under which the generated Java classes will be written.

If no package name is specified, one will be created based off of the callers Force.com store name (i.e. Organization name).

Parameters:
packageName - a non null String which conforms to Java package naming standards
See Also:
ForceJPAClassGeneratorUtils.constructPackageName(GetUserInfoResult), ForceJPAClassDataSelector.setPackageName(String)

getWriter

public Writer getWriter(com.sforce.soap.partner.GetUserInfoResult userInfo,
                        com.sforce.soap.partner.DescribeSObjectResult dsr)
                 throws IOException
Description copied from interface: WriterProvider
Returns a Java Writer for generated source code.

The Writer that is returned represents the destination for the source code that is generated from the given GetUserInfoResult object and DescribeSObjectResult object.

Specified by:
getWriter in interface WriterProvider
Parameters:
userInfo - the Force.com user who is running the code generation
dsr - the Force.com schema object for which code will be generated
Returns:
a non null Java Writer to which generated code will be written
Throws:
IOException - if the Java Writer cannot be created


Copyright © 2011. All Rights Reserved.