initial commit from rev. 632
This commit is contained in:
175
workflow/engine/classes/class.javaBridgePM.php
Normal file
175
workflow/engine/classes/class.javaBridgePM.php
Normal file
@@ -0,0 +1,175 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* class.javaBridgePM.php
|
||||
*
|
||||
* ProcessMaker Open Source Edition
|
||||
* Copyright (C) 2004 - 2008 Colosa Inc.23
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
|
||||
* Coral Gables, FL, 33134, USA, or email info@colosa.com.
|
||||
*
|
||||
*/
|
||||
|
||||
if ( ! defined ( 'JAVA_BRIDGE_PATH') ) define ( 'JAVA_BRIDGE_PATH', 'JavaBridgePM' );
|
||||
if ( ! defined ( 'JAVA_BRIDGE_PORT') ) define ( 'JAVA_BRIDGE_PORT', '8080' );
|
||||
if ( ! defined ( 'JAVA_BRIDGE_HOST') ) define ( 'JAVA_BRIDGE_HOST', '127.0.0.1' );
|
||||
|
||||
class JavaBridgePM
|
||||
{
|
||||
var $JavaBridgeDir = JAVA_BRIDGE_PATH;
|
||||
var $JavaBridgePort = JAVA_BRIDGE_PORT;
|
||||
var $JavaBridgeHost = JAVA_BRIDGE_HOST;
|
||||
|
||||
/**
|
||||
* checkJavaExtension
|
||||
* check if the java extension was loaded.
|
||||
*
|
||||
* @return true or false
|
||||
*/
|
||||
function checkJavaExtension()
|
||||
{
|
||||
try {
|
||||
if (!extension_loaded('java')) {
|
||||
if (!(@include_once("java/Java.inc"))) {
|
||||
$urlJavaInc = "http://$this->JavaBridgeHost:$this->JavaBridgePort/$this->JavaBridgeDir/java/Java.inc";
|
||||
@include_once( $urlJavaInc);
|
||||
$includedFiles = get_included_files();
|
||||
$found = false;
|
||||
foreach ($includedFiles as $filename) {
|
||||
if ( $urlJavaInc == $filename ) $found = true;
|
||||
}
|
||||
if ( !$found ) {
|
||||
throw new Exception ('The PHP/Java Bridge is not defined' ) ;
|
||||
}
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
if ( !function_exists("java_get_server_name")) {
|
||||
throw new Exception ('The loaded java extension is not the PHP/Java Bridge' );
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
catch ( Exception $e ) {
|
||||
throw new Exception ( 'Error in checkJavaExtension: ' . $e->getMessage() );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* convert a php value to a java one...
|
||||
* @param string $value
|
||||
* @param string $className
|
||||
* @returns boolean success
|
||||
*/
|
||||
function convertValue($value, $className)
|
||||
{
|
||||
// if we are a string, just use the normal conversion
|
||||
// methods from the java extension...
|
||||
try {
|
||||
if ($className == 'java.lang.String') {
|
||||
$temp = new Java('java.lang.String', $value);
|
||||
return $temp;
|
||||
}
|
||||
else if ($className == 'java.lang.Boolean' ||
|
||||
$className == 'java.lang.Integer' ||
|
||||
$className == 'java.lang.Long' ||
|
||||
$className == 'java.lang.Short' ||
|
||||
$className == 'java.lang.Double' ||
|
||||
$className == 'java.math.BigDecimal') {
|
||||
$temp = new Java($className, $value);
|
||||
return $temp;
|
||||
}
|
||||
else if ($className == 'java.sql.Timestamp' ||
|
||||
$className == 'java.sql.Time') {
|
||||
$temp = new Java($className);
|
||||
$javaObject = $temp->valueOf($value);
|
||||
return $javaObject;
|
||||
}
|
||||
}
|
||||
catch (Exception $err) {
|
||||
echo ( 'unable to convert value, ' . $value .
|
||||
' could not be converted to ' . $className);
|
||||
return false;
|
||||
}
|
||||
|
||||
echo ( 'unable to convert value, class name '.$className.
|
||||
' not recognised');
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* generateJrxmlFromDynaform
|
||||
* @param string $outDocUid
|
||||
* @param string $dynaformUid
|
||||
* @param object $template
|
||||
* @return void
|
||||
*/
|
||||
function generateJrxmlFromDynaform ( $outDocUid, $dynaformUid, $template ) {
|
||||
require_once 'classes/model/Dynaform.php';
|
||||
$dyn = new Dynaform();
|
||||
$aFields = $dyn->load( $dynaformUid);
|
||||
$xmlFields = $dyn->getDynaformFields( $dynaformUid);
|
||||
|
||||
$reportTpl = PATH_TPL . 'javaBridgePM/classic.xml';
|
||||
$reportFilename = PATH_DYNAFORM . $aFields['PRO_UID'] . PATH_SEP . $outDocUid .'.jrxml';
|
||||
foreach ( $xmlFields as $key => $val ) {
|
||||
if ( $val->type == 'submit' || $val->type == 'button' || $val->type == 'title' || $val->type == 'subtitle' )
|
||||
unset ( $xmlFields[$key] );
|
||||
}
|
||||
|
||||
//$sqlSentence = 'SELECT * from ' . $tableName;
|
||||
$sqlSentence = 'dynaform/';
|
||||
|
||||
$template = new TemplatePower( $reportTpl );
|
||||
$template->prepare();
|
||||
$template->assign ( 'sqlSentence', $sqlSentence );
|
||||
$template->assign ( 'tableName', $aFields['DYN_TITLE'] );
|
||||
$template->assign ( 'heightDetail', count ($xmlFields)*15 + 20 );
|
||||
$template->assign ( 'PAGE_NUMBER' , '{PAGE_NUMBER}' );
|
||||
|
||||
$logoReporte = 'http://' .$_SERVER['SERVER_NAME'] . ':' .$_SERVER['SERVER_PORT'] .
|
||||
'/images/processmaker.logo.jpg';
|
||||
$template->assign ( 'logoReporte', $logoReporte );
|
||||
|
||||
foreach ( $xmlFields as $key => $val ) {
|
||||
$template->newBlock( 'fields');
|
||||
$template->assign ( 'fieldName' , $key );
|
||||
}
|
||||
|
||||
|
||||
$posX = 140;
|
||||
$posLabelX = 5;
|
||||
$posY = 10;
|
||||
foreach ( $xmlFields as $key => $val ) {
|
||||
$template->newBlock( 'detailFields');
|
||||
$template->assign ( 'fieldName' , '{' . $key . '}' );
|
||||
$template->assign ( 'fieldLabel' , $key );
|
||||
$template->assign ( 'labelPosX' , $posLabelX );
|
||||
$template->assign ( 'fieldPosX' , $posX );
|
||||
$template->assign ( 'fieldPosY' , $posY );
|
||||
$posY += 15;
|
||||
}
|
||||
|
||||
$content = $template->getOutputContent();
|
||||
$iSize = file_put_contents ( $reportFilename, $content );
|
||||
printf("saved %s bytes in file %s \n", $iSize, $reportFilename );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user