*
* @author Roland Haeder <webmaster@shipsimu.org>
* @version 0.0.0
- * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2012 Core Developer Team
+ * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2013 Core Developer Team
* @license GNU GPL 3.0 or any newer version
* @link http://www.shipsimu.org
*
private $sourceInstance = NULL;
/**
- * An instance of a InputStreamable class
+ * An instance of a InputStream class
*/
private $inputStreamInstance = NULL;
/**
- * An instance of a OutputStreamable class
+ * An instance of a OutputStream class
*/
private $outputStreamInstance = NULL;
*/
private $wrapperInstance = NULL;
+ /**
+ * An instance of a file I/O pointer class (not handler)
+ */
+ private $pointerInstance = NULL;
+
/**
* Thousands separator
*/
const EXCEPTION_ARRAY_ELEMENTS_MISSING = 0x02c;
const EXCEPTION_TEMPLATE_ENGINE_UNSUPPORTED = 0x02d;
const EXCEPTION_UNSPPORTED_OPERATION = 0x02e;
+ const EXCEPTION_FACTORY_REQUIRE_PARAMETER = 0x02f;
const EXCEPTION_MISSING_ELEMENT = 0x030;
const EXCEPTION_HEADERS_ALREADY_SENT = 0x031;
const EXCEPTION_DEFAULT_CONTROLLER_GONE = 0x032;
const EXCEPTION_ASSERTION_FAILED = 0x037;
const EXCEPTION_FILE_CANNOT_BE_READ = 0x038;
const EXCEPTION_DATABASE_UPDATED_NOT_ALLOWED = 0x039;
- const EXCEPTION_FILTER_CHAIN_INTERCEPTED = 0x040;
+ const EXCEPTION_FILTER_CHAIN_INTERCEPTED = 0x03a;
/**
* Hexadecimal->Decimal translation array
} else {
// Do not call this twice
trigger_error(__METHOD__ . ': Called twice.');
+ exit;
}
}
}
/**
- * Getter for a InputStreamable instance
+ * Getter for a InputStream instance
*
- * @param $inputStreamInstance The InputStreamable instance
+ * @param $inputStreamInstance The InputStream instance
*/
protected final function getInputStreamInstance () {
return $this->inputStreamInstance;
}
/**
- * Setter for a InputStreamable instance
+ * Setter for a InputStream instance
*
- * @param $inputStreamInstance The InputStreamable instance
+ * @param $inputStreamInstance The InputStream instance
* @return void
*/
- protected final function setInputStreamInstance (InputStreamable $inputStreamInstance) {
+ protected final function setInputStreamInstance (InputStream $inputStreamInstance) {
$this->inputStreamInstance = $inputStreamInstance;
}
/**
- * Getter for a OutputStreamable instance
+ * Getter for a OutputStream instance
*
- * @param $outputStreamInstance The OutputStreamable instance
+ * @param $outputStreamInstance The OutputStream instance
*/
protected final function getOutputStreamInstance () {
return $this->outputStreamInstance;
}
/**
- * Setter for a OutputStreamable instance
+ * Setter for a OutputStream instance
*
- * @param $outputStreamInstance The OutputStreamable instance
+ * @param $outputStreamInstance The OutputStream instance
* @return void
*/
- protected final function setOutputStreamInstance (OutputStreamable $outputStreamInstance) {
+ protected final function setOutputStreamInstance (OutputStream $outputStreamInstance) {
$this->outputStreamInstance = $outputStreamInstance;
}
return $this->iteratorInstance;
}
+ /**
+ * Setter for InputOutputPointer instance
+ *
+ * @param $pointerInstance An instance of an InputOutputPointer
+ * @return void
+ */
+ protected final function setPointerInstance (InputOutputPointer $pointerInstance) {
+ $this->pointerInstance = $pointerInstance;
+ }
+
+ /**
+ * Getter for InputOutputPointer instance
+ *
+ * @return $pointerInstance An instance of an InputOutputPointer
+ */
+ public final function getPointerInstance () {
+ return $this->pointerInstance;
+ }
+
/**
* Checks whether an object equals this object. You should overwrite this
* method to implement own equality checks
} else {
// Trigger an error
trigger_error($stubMessage);
+ exit;
}
}
* @return $debugInstance An instance of a debugger class
*/
public final static function createDebugInstance ($className) {
- // Init debug instance
- $debugInstance = NULL;
+ // Is the instance set?
+ if (!Registry::getRegistry()->instanceExists('debug')) {
+ // Init debug instance
+ $debugInstance = NULL;
+
+ // Try it
+ try {
+ // Get a debugger instance
+ $debugInstance = DebugMiddleware::createDebugMiddleware(FrameworkConfiguration::getSelfInstance()->getConfigEntry('debug_class'));
+ } catch (NullPointerException $e) {
+ // Didn't work, no instance there
+ exit('Cannot create debugInstance! Exception=' . $e->__toString() . ', message=' . $e->getMessage());
+ }
- // Try it
- try {
- // Get a debugger instance
- $debugInstance = DebugMiddleware::createDebugMiddleware(FrameworkConfiguration::getSelfInstance()->getConfigEntry('debug_class'));
- } catch (NullPointerException $e) {
- // Didn't work, no instance there
- exit('Cannot create debugInstance! Exception=' . $e->__toString() . ', message=' . $e->getMessage());
- }
+ // Empty string should be ignored and used for testing the middleware
+ DebugMiddleware::getSelfInstance()->output('');
- // Empty string should be ignored and used for testing the middleware
- DebugMiddleware::getSelfInstance()->output('');
+ // Set it in its own class. This will set it in the registry
+ $debugInstance->setDebugInstance($debugInstance);
+ } else {
+ // Get instance from registry
+ $debugInstance = Registry::getRegistry()->getDebugInstance();
+ }
// Return it
return $debugInstance;
} else {
// Trigger an error
trigger_error($message . "<br />\n");
+ exit;
}
} else {
// @TODO Finish this part!
*/
protected function getCacheKeyByCriteria (Criteria $criteriaInstance, array $onlyKeys = array()) {
// Generate it
- $cacheKey = sprintf("%s@%s",
+ $cacheKey = sprintf('%s@%s',
$this->__toString(),
$criteriaInstance->getCacheKey($onlyKeys)
);
if (!$this->isGenericArrayGroupSet($keyGroup, $subGroup)) {
// No, then abort here
trigger_error(__METHOD__ . ': keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ' not found.');
+ exit;
} // END - if
// Debug message
if (($forceInit === FALSE) && ($this->isGenericArrayGroupSet($keyGroup, $subGroup))) {
// Already initialized
trigger_error(__METHOD__ . ':keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ' already initialized.');
+ exit;
} // END - if
// Initialize it
if (($forceInit === FALSE) && ($this->isGenericArrayKeySet($keyGroup, $subGroup, $key))) {
// Already initialized
trigger_error(__METHOD__ . ':keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ' already initialized.');
+ exit;
} // END - if
// Initialize it
if (($forceInit === FALSE) && ($this->isGenericArrayElementSet($keyGroup, $subGroup, $key, $element))) {
// Already initialized
trigger_error(__METHOD__ . ':keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',element=' . $element . ' already initialized.');
+ exit;
} // END - if
// Initialize it
if (!$this->isGenericArrayKeySet($keyGroup, $subGroup, $key)) {
// Not found
trigger_error(__METHOD__ . ': keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ' not found.');
+ exit;
} // END - if
// Then "pop" it
if (!$this->isGenericArrayKeySet($keyGroup, $subGroup, $key)) {
// Not found
trigger_error(__METHOD__ . ': keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ' not found.');
+ exit;
} // END - if
// Then "shift" it
if (!isset($this->genericArray[$keyGroup])) {
// Abort here
trigger_error(__METHOD__ . ': keyGroup=' . $keyGroup . ' not found.');
+ exit;
} // END - if
// Then count it
if (!$this->isGenericArrayGroupSet($keyGroup, $subGroup)) {
// Abort here
trigger_error(__METHOD__ . ': keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ' not found.');
+ exit;
} // END - if
// Then count it
if (!$this->isGenericArrayKeySet($keyGroup, $subGroup, $key)) {
// Abort here
trigger_error(__METHOD__ . ': keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ' not found.');
+ exit;
} elseif (!$this->isValidGenericArrayGroup($keyGroup, $subGroup)) {
// Not valid
trigger_error(__METHOD__ . ': keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ' is not an array.');
+ exit;
}
// Then count it
if (!isset($this->genericArray[$keyGroup])) {
// Then abort here
trigger_error(__METHOD__ . ': keyGroup=' . $keyGroup . ' does not exist.');
+ exit;
} // END - if
// Return it
if (!$this->isGenericArrayKeySet($keyGroup, $subGroup, $key)) {
// Then abort here
trigger_error(__METHOD__ . ': keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ' does not exist.');
+ exit;
} // END - if
// Return it
if (!$this->isGenericArrayElementSet($keyGroup, $subGroup, $key, $element)) {
// Then abort here
trigger_error(__METHOD__ . ': keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',element=' . $element . ' does not exist.');
+ exit;
} // END - if
// Return it
// Return it
return $isValid;
}
+
+ /**
+ * Translates boolean TRUE to 'Y' and FALSE to 'N'
+ *
+ * @param $boolean Boolean value
+ * @return $translated Translated boolean value
+ */
+ public static final function translateBooleanToYesNo ($boolean) {
+ // Make sure it is really boolean
+ assert(is_bool($boolean));
+
+ // "Translate" it
+ $translated = ($boolean === TRUE) ? 'Y' : 'N';
+
+ // ... and return it
+ return $translated;
+ }
}
// [EOF]