diff options
author | Kohei Yoshida <kyoshida@novell.com> | 2009-07-08 00:08:30 -0400 |
---|---|---|
committer | Kohei Yoshida <kyoshida@novell.com> | 2009-07-08 00:08:30 -0400 |
commit | 0b1faa284cd715cd82952c7beb39669fed4c88ba (patch) | |
tree | 9ccc972c0eeaec9b7e70b0bc6b5c2770c49369cd /source | |
parent | bb1812ad6ef4b19ead1fe08fd5e4596a6e6f5800 (diff) |
Worked on dimension objects.
Diffstat (limited to 'source')
-rw-r--r-- | source/dpdimension.cxx | 27 | ||||
-rw-r--r-- | source/dpdimensions.cxx | 34 |
2 files changed, 54 insertions, 7 deletions
diff --git a/source/dpdimension.cxx b/source/dpdimension.cxx new file mode 100644 index 0000000..1cf7716 --- /dev/null +++ b/source/dpdimension.cxx @@ -0,0 +1,27 @@ + +#include "dpdimension.hxx" + +using ::com::sun::star::uno::RuntimeException; +using ::rtl::OUString; + +namespace dpsource { + +DPDimension::DPDimension() +{ +} + +DPDimension::~DPDimension() +{ +} + +OUString DPDimension::getName() throw (RuntimeException) +{ + return maName; +} + +void DPDimension::setName(const OUString& aName) throw (RuntimeException) +{ + maName = aName; +} + +} diff --git a/source/dpdimensions.cxx b/source/dpdimensions.cxx index 7b9bf35..1fb550b 100644 --- a/source/dpdimensions.cxx +++ b/source/dpdimensions.cxx @@ -1,5 +1,6 @@ #include "dpdimensions.hxx" +#include "dpdimension.hxx" #include <com/sun/star/container/XNamed.hpp> @@ -58,27 +59,45 @@ namespace dpsource { DPDimensions::DPDimensions() { + init(); } DPDimensions::~DPDimensions() { } +void DPDimensions::init() +{ + maDimensions.clear(); + + OUString aDimName = OUString::createFromAscii("Andy"); + Reference<XNamed> xRef(new DPDimension); + xRef->setName(aDimName); + maDimensions.insert(DimensionMapType::value_type(aDimName, xRef)); +} + Any DPDimensions::getByName(const OUString& aName) throw (NoSuchElementException, WrappedTargetException, RuntimeException) { StackPrinter __stack_printer__("dpsource/DPDimensions::getByName"); fprintf(stdout, "DPDimensions::getByName: name = '%s'\n", rtl::OUStringToOString(aName, RTL_TEXTENCODING_UTF8).getStr()); - return Any(); + DimensionMapType::const_iterator itr = maDimensions.find(aName); + if (itr == maDimensions.end()) + throw NoSuchElementException(); + + Any any; + any <<= itr->second; + return any; } Sequence<OUString> DPDimensions::getElementNames() throw (RuntimeException) { StackPrinter __stack_printer__("dpsource/DPDimensions::getElementNames"); - Sequence<OUString> aElemNames(3); - aElemNames[0] = OUString::createFromAscii("A"); - aElemNames[1] = OUString::createFromAscii("B"); - aElemNames[2] = OUString::createFromAscii("C"); + Sequence<OUString> aElemNames(maDimensions.size()); + DimensionMapType::const_iterator itr = maDimensions.begin(), itrEnd = maDimensions.end(); + for (sal_Int32 i = 0; itr != itrEnd; ++itr, ++i) + aElemNames[i] = itr->first; + return aElemNames; } @@ -86,7 +105,8 @@ sal_Bool DPDimensions::hasByName(const OUString& aName) throw (RuntimeException) { StackPrinter __stack_printer__("dpsource/DPDimensions::hasByName"); fprintf(stdout, "DPDimensions::hasByName: name = '%s'\n", rtl::OUStringToOString(aName, RTL_TEXTENCODING_UTF8).getStr()); - return false; + DimensionMapType::const_iterator itr = maDimensions.find(aName); + return (itr != maDimensions.end()); } Type DPDimensions::getElementType() throw (RuntimeException) @@ -96,7 +116,7 @@ Type DPDimensions::getElementType() throw (RuntimeException) sal_Bool DPDimensions::hasElements() throw (RuntimeException) { - return false; + return !maDimensions.empty(); } OUString DPDimensions::getImplementationName() throw (RuntimeException) |