[Jiemamy-notify:2431] commit [3429] modelを理解しているかは怪しい。

Zurück zum Archiv-Index

svnno****@sourc***** svnno****@sourc*****
2009年 6月 17日 (水) 22:28:18 JST


Revision: 3429
          http://sourceforge.jp/projects/jiemamy/svn/view?view=rev&revision=3429
Author:   yamkazu
Date:     2009-06-17 22:28:18 +0900 (Wed, 17 Jun 2009)

Log Message:
-----------
modelを理解しているかは怪しい。

Added Paths:
-----------
    sandbox/jiemamy-excel-exporter/pom.xml
    sandbox/jiemamy-excel-exporter/src/
    sandbox/jiemamy-excel-exporter/src/main/
    sandbox/jiemamy-excel-exporter/src/main/java/
    sandbox/jiemamy-excel-exporter/src/main/java/org/
    sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/
    sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/
    sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/DefaultExcelExportConfig.java
    sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/ExcelExportConfig.java
    sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/ExcelExporter.java
    sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/ExcelRowModel.java
    sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/ExcelRowModelImpl.java
    sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/ExcelTableModel.java
    sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/ExcelTableModelImpl.java
    sandbox/jiemamy-excel-exporter/src/main/resources/
    sandbox/jiemamy-excel-exporter/src/main/resources/DefaultTemplate.xls
    sandbox/jiemamy-excel-exporter/src/test/
    sandbox/jiemamy-excel-exporter/src/test/java/
    sandbox/jiemamy-excel-exporter/src/test/java/org/
    sandbox/jiemamy-excel-exporter/src/test/java/org/jiemamy/
    sandbox/jiemamy-excel-exporter/src/test/java/org/jiemamy/composer/
    sandbox/jiemamy-excel-exporter/src/test/java/org/jiemamy/composer/ExcelExporterTest.java
    sandbox/jiemamy-excel-exporter/src/test/resources/
    sandbox/jiemamy-excel-exporter/src/test/resources/MyTemplate.xls
    sandbox/jiemamy-excel-exporter/src/test/resources/jiemamy.jer


-------------- next part --------------
Added: sandbox/jiemamy-excel-exporter/pom.xml
===================================================================
--- sandbox/jiemamy-excel-exporter/pom.xml	                        (rev 0)
+++ sandbox/jiemamy-excel-exporter/pom.xml	2009-06-17 13:28:18 UTC (rev 3429)
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.jiemamy</groupId>
+    <artifactId>jiemamy-artemis</artifactId>
+    <version>0.2.1-SNAPSHOT</version>
+    <relativePath>../jiemamy-artemis</relativePath>
+  </parent>
+  <groupId>org.jiemamy</groupId>
+  <artifactId>jiemamy-excel-exporter</artifactId>
+  <name>Jiemamy excel Exporter</name>
+  <version>0.2.1-SNAPSHOT</version>
+  <description><![CDATA[JiemamyモデルをDB仕様書excelにエクスポートするエクスポータ。]]></description>
+  <url>http://report.jiemamy.org/jiemamy-excel-exporter</url>
+  <issueManagement>
+    <system>JIRA</system>
+    <url>http://jira.jiemamy.org/jira/browse/Eexcel</url>
+  </issueManagement>
+  <inceptionYear>2007</inceptionYear>
+  <developers>
+    <developer>
+      <id>daisuke</id>
+      <name>MIYAMOTO Daisuke</name>
+      <email>daisuke_m****@users*****</email>
+      <url>http://d.hatena.ne.jp/daisuke-m/</url>
+      <timezone>+9</timezone>
+    </developer>
+    <developer>
+      <id>yamkazu</id>
+      <name>YAMAMOTO Kazuki</name>
+      <email>yam.k****@gmail*****</email>
+      <url>http://d.hatena.ne.jp/yamkazu/</url>
+      <timezone>+9</timezone>
+    </developer>
+  </developers>
+  <scm>
+    <connection>scm:svn:http://svn.sourceforge.jp/svnroot/jiemamy/charon/jiemamy-excel-exporter/trunk</connection>
+    <developerConnection>scm:svn:svn+ssh://svn.sourceforge.jp/svnroot/jiemamy/charon/jiemamy-excel-exporter/trunk</developerConnection>
+    <url>http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi/charon/jiemamy-excel-exporter/trunk/?root=jiemamy</url>
+  </scm>
+  <repositories>
+    <repository>
+      <id>maven.seasar.org</id>
+      <name>The Seasar Foundation Maven2 Repository</name>
+      <url>http://maven.seasar.org/maven2</url>
+    </repository>
+  </repositories>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>4.5</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.hamcrest</groupId>
+      <artifactId>hamcrest-library</artifactId>
+      <version>1.1</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>net.java.dev.jmockit</groupId>
+      <artifactId>jmockit</artifactId>
+      <version>0.94</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>1.5.6</version>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>jcl-over-slf4j</artifactId>
+      <version>1.5.6</version>
+    </dependency>
+    <dependency>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-core</artifactId>
+      <version>0.9.15</version>
+    </dependency>
+    <dependency>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+      <version>0.9.15</version>
+    </dependency>
+    <dependency>
+      <groupId>commons-lang</groupId>
+      <artifactId>commons-lang</artifactId>
+      <version>2.4</version>
+    </dependency>
+    <dependency>
+      <groupId>org.freemarker</groupId>
+      <artifactId>freemarker</artifactId>
+      <version>2.3.11</version>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>jiemamy-spec-core</artifactId>
+      <version>0.2</version>
+    </dependency>
+    <dependency>
+      <groupId>org.seasar.fisshplate</groupId>
+      <artifactId>fisshplate</artifactId>
+      <version>0.1.3</version>
+    </dependency>  
+    <dependency>
+      <groupId>org.apache.poi</groupId>
+      <artifactId>poi</artifactId>
+      <version>3.2-FINAL</version>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>jiemamy-core</artifactId>
+      <version>${project.parent.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>jiemamy-dialect-postgresql</artifactId>
+      <version>${project.parent.version}</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+  
+  <distributionManagement>
+    <site>
+      <id>jiemamy-report</id>
+      <name>maven-jiemamy-plugin-site</name>
+      <url>scp://report.jiemamy.org/var/www/report/jiemamy-excel-exporter/${project.version}</url>
+    </site>
+  </distributionManagement>
+</project>
\ No newline at end of file


Property changes on: sandbox/jiemamy-excel-exporter/pom.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/DefaultExcelExportConfig.java
===================================================================
--- sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/DefaultExcelExportConfig.java	                        (rev 0)
+++ sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/DefaultExcelExportConfig.java	2009-06-17 13:28:18 UTC (rev 3429)
@@ -0,0 +1,71 @@
+package org.jiemamy.composer;
+
+import java.io.File;
+import java.net.URISyntaxException;
+
+import org.apache.commons.lang.Validate;
+
+/**
+ * @author yamkazu
+ * 
+ */
+public class DefaultExcelExportConfig implements ExcelExportConfig {
+
+	/** 出力先ファイル */
+	private File outputFile;
+
+	/** 出力先ファイルが既に存在した場合、上書きするかどうか */
+	private boolean overwrite;
+
+	/** テンプレートファイル */
+	private File templateFile;
+
+	public File getOutputFile() {
+		return outputFile;
+	}
+
+	public boolean isOverwrite() {
+		return overwrite;
+	}
+
+	/**
+	 * 出力ファイルを設定する。
+	 * 
+	 * @param outputFile
+	 *            出力ファイル
+	 * @throws IllegalArgumentException
+	 *             引数に{@code null}を与えた場合
+	 */
+	public void setOutputFile(File outputFile) {
+		Validate.notNull(outputFile);
+		this.outputFile = outputFile;
+	}
+
+	/**
+	 * 出力ファイルが既に存在した場合、上書きするかどうかを設定する。
+	 * 
+	 * @param overwrite
+	 *            上書きする場合は{@code true}、そうでない場合は{@code false}
+	 */
+	public void setOverwrite(boolean overwrite) {
+		this.overwrite = overwrite;
+	}
+
+	public File getTemplateFile() {
+		if (templateFile == null) {
+			try {
+				return new File(getClass().getClassLoader().getResource("DefaultTemplate.xls").toURI());
+			} catch (URISyntaxException e) {
+				// あり得ない
+				throw new IllegalStateException("defalut template file not found");
+			}
+		}
+		return templateFile;
+	}
+
+	public void setTemplateFile(File templateFile) {
+		Validate.notNull(templateFile);
+		this.templateFile = templateFile;
+	}
+
+}


Property changes on: sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/DefaultExcelExportConfig.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/ExcelExportConfig.java
===================================================================
--- sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/ExcelExportConfig.java	                        (rev 0)
+++ sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/ExcelExportConfig.java	2009-06-17 13:28:18 UTC (rev 3429)
@@ -0,0 +1,22 @@
+package org.jiemamy.composer;
+
+import java.io.File;
+
+/**
+ * @author yamkazu
+ * 
+ */
+public interface ExcelExportConfig extends ExportConfig {
+
+	public void setOutputFile(File outputFile);
+
+	public File getOutputFile();
+
+	public boolean isOverwrite();
+
+	void setOverwrite(boolean overwrite);
+
+	public void setTemplateFile(File templateFile);
+
+	public File getTemplateFile();
+}


Property changes on: sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/ExcelExportConfig.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/ExcelExporter.java
===================================================================
--- sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/ExcelExporter.java	                        (rev 0)
+++ sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/ExcelExporter.java	2009-06-17 13:28:18 UTC (rev 3429)
@@ -0,0 +1,166 @@
+package org.jiemamy.composer;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang.Validate;
+import org.apache.commons.lang.builder.ToStringBuilder;
+import org.apache.commons.lang.builder.ToStringStyle;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.poifs.filesystem.POIFSFileSystem;
+import org.jiemamy.model.RootModel;
+import org.jiemamy.model.attribute.ColumnModel;
+import org.jiemamy.model.entity.EntityModel;
+import org.jiemamy.model.entity.TableModel;
+import org.jiemamy.utils.CollectionsUtil;
+import org.jiemamy.utils.EntityDependencyCalculator;
+import org.seasar.fisshplate.exception.FPMergeException;
+import org.seasar.fisshplate.exception.FPParseException;
+import org.seasar.fisshplate.template.FPTemplate;
+
+/**
+ * @author yamkazu
+ * 
+ */
+public class ExcelExporter implements Exporter<ExcelExportConfig> {
+
+	public boolean exportModel(RootModel rootModel, ExcelExportConfig config) throws ExportException {
+		Validate.notNull(rootModel);
+		Validate.notNull(config);
+		Validate.notNull(config.getOutputFile());
+
+		File outputFile = config.getOutputFile();
+		if (outputFile.exists()) {
+			if (config.isOverwrite() == false) {
+				return false;
+			}
+			if (outputFile.isDirectory()) {
+				deleteDirectory(outputFile);
+			}
+		}
+
+		HSSFWorkbook outWorkbook = null;
+		InputStream in = null;
+		try {
+			in = new FileInputStream(config.getTemplateFile());
+			outWorkbook = new HSSFWorkbook(new POIFSFileSystem(in));
+		} catch (IOException e) {
+			throw new ExportException("can not open template file", e);
+		} finally {
+			IOUtils.closeQuietly(in);
+		}
+
+		Map<String, Object> data = null;
+		for (EntityModel entityModel : EntityDependencyCalculator.getSortedEntityList(rootModel)) {
+			if (entityModel instanceof TableModel) {
+				TableModel tableModel = (TableModel) entityModel;
+				List<ExcelRowModel> excelRowModels = CollectionsUtil.newArrayList();
+				for (ColumnModel columnModel : tableModel.findColumns()) {
+					excelRowModels.add(new ExcelRowModelImpl(columnModel));
+				}
+				data = new HashMap<String, Object>();
+				data.put("table", new ExcelTableModelImpl(tableModel));
+				data.put("columns", excelRowModels);
+				createSheet(outWorkbook, data);
+			}
+		}
+		removeTemplateSheet(outWorkbook);
+		writeWorkbook(outWorkbook, outputFile);
+		return true;
+	}
+
+	/**
+	 * テンプレートのクローンを生成して、テンプレートの置換を行う。
+	 * 
+	 * @param workbook
+	 * @param data
+	 * @throws ExportException
+	 */
+	private void createSheet(HSSFWorkbook workbook, Map<String, Object> data) throws ExportException {
+		try {
+			// シートのクローンを作成
+			workbook.cloneSheet(0);
+
+			// クローンを一番左へ移動
+			int lastIndex = workbook.getNumberOfSheets() - 1;
+			String sheetName = workbook.getSheetName(lastIndex);
+			workbook.setSheetOrder(sheetName, 0);
+
+			// 置換を実行
+			FPTemplate template = new FPTemplate();
+			template.process(workbook, data);
+
+			// 置換シートを一番右へ移動
+			workbook.setSheetOrder(sheetName, lastIndex);
+			workbook.setSheetName(lastIndex, ((ExcelTableModel) data.get("table")).getName());
+		} catch (FPParseException e) {
+			throw new ExportException("fisshplate pase error", e);
+		} catch (FPMergeException e) {
+			throw new ExportException("fisshplate merge error", e);
+		}
+	}
+
+	/**
+	 * テンプレートのシートを削除する。
+	 * 
+	 * @param workbook
+	 */
+	private void removeTemplateSheet(HSSFWorkbook workbook) {
+		workbook.removeSheetAt(0);
+	}
+
+	/**
+	 * ワークブックをファイルに書き出します。
+	 * 
+	 * @param workbook
+	 * @param outputFile
+	 * @param config
+	 * @throws ExportException
+	 */
+	private void writeWorkbook(HSSFWorkbook workbook, File outputFile) throws ExportException {
+		FileOutputStream out = null;
+		try {
+			out = new FileOutputStream(outputFile);
+			workbook.write(out);
+		} catch (FileNotFoundException e) {
+			throw new ExportException("file no found: " + outputFile.getAbsolutePath(), e);
+		} catch (IOException e) {
+			throw new ExportException("can not write: " + outputFile.getAbsolutePath(), e);
+		} finally {
+			IOUtils.closeQuietly(out);
+		}
+	}
+
+	public String getName() {
+		return "Excel Exporter";
+	}
+
+	@Override
+	public String toString() {
+		return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
+	}
+
+	private void deleteDirectory(File directory) throws ExportException {
+		for (File file : directory.listFiles()) {
+			if (file.isDirectory()) {
+				deleteDirectory(file);
+			} else {
+				if (file.delete() == false) {
+					throw new ExportException("Cannot delete file: " + file.getAbsolutePath());
+				}
+			}
+		}
+		if (directory.delete() == false) {
+			throw new ExportException("Cannot delete directory: " + directory.getAbsolutePath());
+		}
+	}
+
+}


Property changes on: sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/ExcelExporter.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/ExcelRowModel.java
===================================================================
--- sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/ExcelRowModel.java	                        (rev 0)
+++ sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/ExcelRowModel.java	2009-06-17 13:28:18 UTC (rev 3429)
@@ -0,0 +1,31 @@
+package org.jiemamy.composer;
+
+/**
+ * Excelにテーブルのカラム情報を表示するモデルクラスです。
+ * 
+ * <p>
+ * このクラスは絶対に{@code null}を返しません。情報がない場合は空文字{@code ""}を返します。
+ * 
+ * @author yamkazu
+ * 
+ */
+public interface ExcelRowModel {
+
+	String getLogicalName();
+
+	String getName();
+
+	String getDataType();
+
+	String getSize();
+
+	String getPrimaryKey();
+
+	String getNotNull();
+
+	String getUniqueKey();
+
+	String getDescription();
+
+	String getDefaultValue();
+}


Property changes on: sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/ExcelRowModel.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/ExcelRowModelImpl.java
===================================================================
--- sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/ExcelRowModelImpl.java	                        (rev 0)
+++ sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/ExcelRowModelImpl.java	2009-06-17 13:28:18 UTC (rev 3429)
@@ -0,0 +1,63 @@
+package org.jiemamy.composer;
+
+import static org.jiemamy.utils.StringUtil.isEmpty;
+
+import org.jiemamy.internal.ReferenceResolverImpl;
+import org.jiemamy.model.attribute.ColumnModel;
+import org.jiemamy.model.datatype.BuiltinDataType;
+import org.jiemamy.model.datatype.adapter.SizedDataTypeAdapter;
+
+/**
+ * @author yamkazu
+ * 
+ */
+public class ExcelRowModelImpl implements ExcelRowModel {
+
+	private ColumnModel columnModel;
+
+	public ExcelRowModelImpl(ColumnModel columnModel) {
+		this.columnModel = columnModel;
+	}
+
+	public String getDataType() {
+		String dataType = columnModel.getDataType().toBuiltinDataType(new ReferenceResolverImpl()).getTypeName();
+		return isEmpty(dataType) ? "" : dataType;
+	}
+
+	public String getLogicalName() {
+		return isEmpty(columnModel.getLogicalName()) ? "" : columnModel.getLogicalName();
+	}
+
+	public String getName() {
+		return isEmpty(columnModel.getName()) ? "" : columnModel.getName();
+	}
+
+	public String getSize() {
+		BuiltinDataType dataType = columnModel.getDataType().toBuiltinDataType(new ReferenceResolverImpl());
+		if (dataType.hasAdapter(SizedDataTypeAdapter.class)) {
+			return String.valueOf(dataType.getAdapter(SizedDataTypeAdapter.class).getSize());
+		}
+		return "";
+	}
+
+	public String getPrimaryKey() {
+		return columnModel.checkPrimaryKeyColumn() ? "○" : "";
+	}
+
+	public String getNotNull() {
+		return columnModel.getNotNullConstraint() == null ? "" : "○";
+	}
+
+	public String getUniqueKey() {
+		return columnModel.getUniqueKey() == null ? "" : "○";
+	}
+
+	public String getDescription() {
+		return isEmpty(columnModel.getDescription()) ? "" : columnModel.getDescription();
+	}
+
+	public String getDefaultValue() {
+		return isEmpty(columnModel.getDefaultValue()) ? "" : columnModel.getDefaultValue();
+	}
+
+}


Property changes on: sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/ExcelRowModelImpl.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/ExcelTableModel.java
===================================================================
--- sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/ExcelTableModel.java	                        (rev 0)
+++ sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/ExcelTableModel.java	2009-06-17 13:28:18 UTC (rev 3429)
@@ -0,0 +1,20 @@
+package org.jiemamy.composer;
+
+/**
+ * Excelにテーブル情報を表示するモデルです。
+ * 
+ * <p>
+ * このクラスは絶対に{@code null}を返しません。情報がない場合は空文字{@code ""}を返します。
+ * 
+ * @author yamkazu
+ * 
+ */
+public interface ExcelTableModel {
+
+	String getName();
+
+	String getLogicalName();
+
+	String getDescription();
+
+}


Property changes on: sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/ExcelTableModel.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/ExcelTableModelImpl.java
===================================================================
--- sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/ExcelTableModelImpl.java	                        (rev 0)
+++ sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/ExcelTableModelImpl.java	2009-06-17 13:28:18 UTC (rev 3429)
@@ -0,0 +1,27 @@
+package org.jiemamy.composer;
+
+import static org.jiemamy.utils.StringUtil.isEmpty;
+
+import org.jiemamy.model.entity.TableModel;
+
+public class ExcelTableModelImpl implements ExcelTableModel {
+
+	private TableModel tableModel;
+
+	public ExcelTableModelImpl(TableModel tableModel) {
+		this.tableModel = tableModel;
+	}
+
+	public String getDescription() {
+		return isEmpty(tableModel.getDescription()) ? "" : tableModel.getDescription();
+	}
+
+	public String getLogicalName() {
+		return isEmpty(tableModel.getLogicalName()) ? "" : tableModel.getLogicalName();
+	}
+
+	public String getName() {
+		return isEmpty(tableModel.getName()) ? "" : tableModel.getName();
+	}
+
+}


Property changes on: sandbox/jiemamy-excel-exporter/src/main/java/org/jiemamy/composer/ExcelTableModelImpl.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: sandbox/jiemamy-excel-exporter/src/main/resources/DefaultTemplate.xls
===================================================================
(Binary files differ)


Property changes on: sandbox/jiemamy-excel-exporter/src/main/resources/DefaultTemplate.xls
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: sandbox/jiemamy-excel-exporter/src/test/java/org/jiemamy/composer/ExcelExporterTest.java
===================================================================
--- sandbox/jiemamy-excel-exporter/src/test/java/org/jiemamy/composer/ExcelExporterTest.java	                        (rev 0)
+++ sandbox/jiemamy-excel-exporter/src/test/java/org/jiemamy/composer/ExcelExporterTest.java	2009-06-17 13:28:18 UTC (rev 3429)
@@ -0,0 +1,72 @@
+package org.jiemamy.composer;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+import java.io.File;
+import java.io.InputStream;
+
+import org.apache.commons.io.IOUtils;
+import org.jiemamy.Jiemamy;
+import org.jiemamy.model.RootModel;
+import org.jiemamy.serializer.JiemamySerializer;
+import org.junit.Before;
+import org.junit.Test;
+
+public class ExcelExporterTest {
+
+	RootModel rootModel;
+
+	@Before
+	public void setUp() throws Exception {
+		Jiemamy jiemamy = Jiemamy.newInstance();
+		JiemamySerializer serializer = jiemamy.getSerializer();
+		InputStream in = null;
+		try {
+			in = ExcelExporterTest.class.getResourceAsStream("/jiemamy.jer");
+			rootModel = serializer.deserialize(in);
+		} finally {
+			IOUtils.closeQuietly(in);
+		}
+	}
+
+	/**
+	 * @throws Exception
+	 */
+	@Test
+	public void Excelでエクスポートする() throws Exception {
+		ExcelExporter exporter = new ExcelExporter();
+		DefaultExcelExportConfig config = new DefaultExcelExportConfig();
+		config.setOutputFile(new File("./target/DefaultTemplateResult.xls"));
+		config.setOverwrite(true);
+		assertThat(exporter.exportModel(rootModel, config), is(true));
+	}
+
+	/**
+	 * @throws Exception
+	 */
+	@Test
+	public void Overwiteにfalseを設定すると上書きされない() throws Exception {
+		File deleteFile = new File("./target/OverrideResult.xls");
+		if (deleteFile.exists()) {
+			deleteFile.delete();
+		}
+		ExcelExporter exporter = new ExcelExporter();
+		DefaultExcelExportConfig config = new DefaultExcelExportConfig();
+		config.setOutputFile(new File("./target/OverrideResult.xls"));
+		config.setOverwrite(false);
+		assertThat(exporter.exportModel(rootModel, config), is(true));
+		assertThat(exporter.exportModel(rootModel, config), is(false));
+	}
+
+	@Test
+	public void テンプレートを指定するとそのテンプレートでエクスポートされる() throws Exception {
+		ExcelExporter exporter = new ExcelExporter();
+		DefaultExcelExportConfig config = new DefaultExcelExportConfig();
+		config.setOutputFile(new File("./target/MyTemplateResult.xls"));
+		config.setTemplateFile(new File(getClass().getClassLoader().getResource("MyTemplate.xls").toURI()));
+		config.setOverwrite(true);
+		assertThat(exporter.exportModel(rootModel, config), is(true));
+	}
+
+}


Property changes on: sandbox/jiemamy-excel-exporter/src/test/java/org/jiemamy/composer/ExcelExporterTest.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: sandbox/jiemamy-excel-exporter/src/test/resources/MyTemplate.xls
===================================================================
(Binary files differ)


Property changes on: sandbox/jiemamy-excel-exporter/src/test/resources/MyTemplate.xls
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: sandbox/jiemamy-excel-exporter/src/test/resources/jiemamy.jer
===================================================================
--- sandbox/jiemamy-excel-exporter/src/test/resources/jiemamy.jer	                        (rev 0)
+++ sandbox/jiemamy-excel-exporter/src/test/resources/jiemamy.jer	2009-06-17 13:28:18 UTC (rev 3429)
@@ -0,0 +1,364 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jiemamy xmlns="http://jiemamy.org/xml/ns/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="20331948-0618-4069-952c-c884ea4449ed" version="0.2" xsi:schemaLocation="http://jiemamy.org/xml/ns/core http://jiemamy.org/xml/0.2.0/jiemamy-core.xsd http://jiemamy.org/xml/ns/view null">
+  <dialect>org.jiemamy.dialect.postgresql.PostgresqlDialect</dialect>
+  <endScript>SELECT setval('emp_id_seq', 14);</endScript>
+  <domains/>
+  <entities>
+    <table id="b0eb61af-8f86-47ab-bde4-bc4fc9bdc47a">
+      <name>DEPT</name>
+      <logicalName>部署</logicalName>
+      <description>部署テーブルです。</description>
+      <attributes>
+        <primaryKey id="aa335d18-9a4a-4337-883a-445757fb8d1f">
+          <columnRefs>
+            <columnRef ref="d1bc12f1-068e-4299-9e24-c88bd67e2c13"/>
+          </columnRefs>
+        </primaryKey>
+        <column id="d1bc12f1-068e-4299-9e24-c88bd67e2c13">
+          <name>ID</name>
+          <logicalName>部署ID</logicalName>
+          <description>ほげほげ</description>
+          <dataType>
+            <typeCategory>INTEGER</typeCategory>
+            <typeName>SERIAL</typeName>
+          </dataType>
+          <notNull id="191f5cd2-f063-4454-8467-6342f7f4a822"/>
+        </column>
+        <column id="d783d6d9-737b-4198-ae94-42c3d5b3570b">
+          <name>DEPT_NO</name>
+          <logicalName>部署NO</logicalName>
+          <dataType>
+            <typeCategory>INTEGER</typeCategory>
+            <typeName>INTEGER</typeName>
+          </dataType>
+          <notNull id="99350550-4ed2-4512-9512-663756587168"/>
+        </column>
+        <column id="9fbbd509-18f3-4209-82ea-481ac387980c">
+          <name>DEPT_NAME</name>
+          <logicalName>部署名</logicalName>
+          <dataType>
+            <typeCategory>VARCHAR</typeCategory>
+            <typeName>VARCHAR</typeName>
+            <adapter class="org.jiemamy.model.datatype.adapter.SizedDataTypeAdapter">
+              <size>20</size>
+            </adapter>
+          </dataType>
+        </column>
+        <column id="626102d4-8235-495e-9759-3ea600dbce6c">
+          <name>LOC</name>
+          <logicalName>ロケーション</logicalName>
+          <dataType>
+            <typeCategory>VARCHAR</typeCategory>
+            <typeName>VARCHAR</typeName>
+            <adapter class="org.jiemamy.model.datatype.adapter.SizedDataTypeAdapter">
+              <size>20</size>
+            </adapter>
+          </dataType>
+        </column>
+        <column id="00d8aebd-11ec-47d8-9f2e-1ca135c78fcd">
+          <name>VERSION_NO</name>
+          <dataType>
+            <typeCategory>INTEGER</typeCategory>
+            <typeName>INTEGER</typeName>
+          </dataType>
+        </column>
+      </attributes>
+      <indexes/>
+    </table>
+    <table id="d492ab23-b213-4cb3-bc50-3c865eb1b59d">
+      <name>EMP</name>
+      <logicalName>従業員</logicalName>
+      <description>従業員のテーブルです。</description>
+      <attributes>
+        <primaryKey id="70fe04ba-e762-453d-8120-2d926e98355b">
+          <columnRefs>
+            <columnRef ref="9b948a38-607b-4883-8ee6-bc44dc00a256"/>
+          </columnRefs>
+        </primaryKey>
+        <column id="9b948a38-607b-4883-8ee6-bc44dc00a256">
+          <name>ID</name>
+          <logicalName>従業員ID</logicalName>
+          <dataType>
+            <typeCategory>INTEGER</typeCategory>
+            <typeName>SERIAL</typeName>
+          </dataType>
+          <notNull id="a788908a-7b9d-4d5d-a8e6-c920b0d66947"/>
+        </column>
+        <column id="0f469616-6432-4a4d-9de5-a10e100668a4">
+          <name>EMP_NO</name>
+          <logicalName>従業員NO</logicalName>
+          <dataType>
+            <typeCategory>INTEGER</typeCategory>
+            <typeName>INTEGER</typeName>
+          </dataType>
+          <notNull id="472f7063-fb7c-489a-b5a7-f693fe066d35"/>
+        </column>
+        <column id="52e31885-3619-4185-9bcb-4e8f004a42ad">
+          <name>EMP_NAME</name>
+          <logicalName>従業員名</logicalName>
+          <dataType>
+            <typeCategory>VARCHAR</typeCategory>
+            <typeName>VARCHAR</typeName>
+            <adapter class="org.jiemamy.model.datatype.adapter.SizedDataTypeAdapter">
+              <size>20</size>
+            </adapter>
+          </dataType>
+        </column>
+        <column id="fbde8ebe-f1d0-4e41-82d3-92915baabdb5">
+          <name>MGR_ID</name>
+          <logicalName>役職ID</logicalName>
+          <dataType>
+            <typeCategory>INTEGER</typeCategory>
+            <typeName>INTEGER</typeName>
+          </dataType>
+          <defaultValue>1</defaultValue>
+        </column>
+        <column id="bb508d71-e082-4aef-9ee0-b964a5fe16a0">
+          <name>HIREDATE</name>
+          <logicalName>契約日</logicalName>
+          <dataType>
+            <typeCategory>DATE</typeCategory>
+            <typeName>DATE</typeName>
+          </dataType>
+        </column>
+        <column id="c869b6bd-6c90-4194-8664-fa8b57357ff1">
+          <name>SAL</name>
+          <logicalName>給料</logicalName>
+          <dataType>
+            <typeCategory>DECIMAL</typeCategory>
+            <typeName>DECIMAL</typeName>
+            <adapter class="org.jiemamy.model.datatype.adapter.PrecisionedDataTypeAdapter">
+              <precision>7</precision>
+              <scale>2</scale>
+            </adapter>
+          </dataType>
+        </column>
+        <column id="4db0a4db-709c-4c80-bc36-f043e8c49116">
+          <name>DEPT_ID</name>
+          <logicalName>部署ID</logicalName>
+          <description>ほげほげ</description>
+          <dataType>
+            <typeCategory>INTEGER</typeCategory>
+            <typeName>INTEGER</typeName>
+          </dataType>
+        </column>
+        <column id="b1ac3bc7-04b1-41b4-b182-a4002da045c8">
+          <name>VERSION_NO</name>
+          <dataType>
+            <typeCategory>INTEGER</typeCategory>
+            <typeName>INTEGER</typeName>
+          </dataType>
+        </column>
+        <foreignKey id="441c5fe6-08ba-49ba-8ca7-3e5cc9e00c97">
+          <columnRefs>
+            <columnRef ref="4db0a4db-709c-4c80-bc36-f043e8c49116"/>
+          </columnRefs>
+          <referenceColumns>
+            <columnRef ref="d1bc12f1-068e-4299-9e24-c88bd67e2c13"/>
+          </referenceColumns>
+        </foreignKey>
+      </attributes>
+      <indexes/>
+    </table>
+  </entities>
+  <dataSets>
+    <dataSet id="3d598887-585f-40df-8d5f-3505bc118d5c">
+      <name>jiemamy.dml</name>
+      <tableRef ref="b0eb61af-8f86-47ab-bde4-bc4fc9bdc47a">
+        <record id="0d0a3cbb-dd8d-4cda-9935-6f943efa4c84">
+          <columnRef ref="2a0b272c-0600-4235-9ba2-d9ce0a959b6e">1</columnRef>
+          <columnRef ref="d1bc12f1-068e-4299-9e24-c88bd67e2c13">1</columnRef>
+          <columnRef ref="d783d6d9-737b-4198-ae94-42c3d5b3570b">10</columnRef>
+          <columnRef ref="9fbbd509-18f3-4209-82ea-481ac387980c">ACCOUNTING</columnRef>
+          <columnRef ref="626102d4-8235-495e-9759-3ea600dbce6c">NEW YORK</columnRef>
+          <columnRef ref="00d8aebd-11ec-47d8-9f2e-1ca135c78fcd">1</columnRef>
+        </record>
+        <record id="2edb73ee-fd1f-4834-a886-94e7ad4e6d4e">
+          <columnRef ref="d1bc12f1-068e-4299-9e24-c88bd67e2c13">2</columnRef>
+          <columnRef ref="d783d6d9-737b-4198-ae94-42c3d5b3570b">20</columnRef>
+          <columnRef ref="9fbbd509-18f3-4209-82ea-481ac387980c">RESEARCH</columnRef>
+          <columnRef ref="626102d4-8235-495e-9759-3ea600dbce6c">DALLAS</columnRef>
+          <columnRef ref="00d8aebd-11ec-47d8-9f2e-1ca135c78fcd">1</columnRef>
+        </record>
+        <record id="3f33079c-5a3d-40f3-9d67-25df203e6398">
+          <columnRef ref="d1bc12f1-068e-4299-9e24-c88bd67e2c13">3</columnRef>
+          <columnRef ref="d783d6d9-737b-4198-ae94-42c3d5b3570b">30</columnRef>
+          <columnRef ref="9fbbd509-18f3-4209-82ea-481ac387980c">SALES</columnRef>
+          <columnRef ref="626102d4-8235-495e-9759-3ea600dbce6c">CHICAGO</columnRef>
+          <columnRef ref="00d8aebd-11ec-47d8-9f2e-1ca135c78fcd">1</columnRef>
+        </record>
+        <record id="6ddd388e-8bea-4a79-aed9-b9392da49608">
+          <columnRef ref="d1bc12f1-068e-4299-9e24-c88bd67e2c13">4</columnRef>
+          <columnRef ref="d783d6d9-737b-4198-ae94-42c3d5b3570b">40</columnRef>
+          <columnRef ref="9fbbd509-18f3-4209-82ea-481ac387980c">OPERATIONS</columnRef>
+          <columnRef ref="626102d4-8235-495e-9759-3ea600dbce6c">BOSTON</columnRef>
+          <columnRef ref="00d8aebd-11ec-47d8-9f2e-1ca135c78fcd">1</columnRef>
+        </record>
+      </tableRef>
+      <tableRef ref="d492ab23-b213-4cb3-bc50-3c865eb1b59d">
+        <record id="20b4df66-cf21-40a6-82da-44c2f5252c4d">
+          <columnRef ref="9b948a38-607b-4883-8ee6-bc44dc00a256">1</columnRef>
+          <columnRef ref="0f469616-6432-4a4d-9de5-a10e100668a4">7369</columnRef>
+          <columnRef ref="52e31885-3619-4185-9bcb-4e8f004a42ad">SMITH</columnRef>
+          <columnRef ref="fbde8ebe-f1d0-4e41-82d3-92915baabdb5">13</columnRef>
+          <columnRef ref="bb508d71-e082-4aef-9ee0-b964a5fe16a0">1980-12-17</columnRef>
+          <columnRef ref="c869b6bd-6c90-4194-8664-fa8b57357ff1">800</columnRef>
+          <columnRef ref="4db0a4db-709c-4c80-bc36-f043e8c49116">2</columnRef>
+          <columnRef ref="b1ac3bc7-04b1-41b4-b182-a4002da045c8">1</columnRef>
+        </record>
+        <record id="efc21a71-f439-4c65-8b9e-51603f8105ea">
+          <columnRef ref="9b948a38-607b-4883-8ee6-bc44dc00a256">2</columnRef>
+          <columnRef ref="0f469616-6432-4a4d-9de5-a10e100668a4">7499</columnRef>
+          <columnRef ref="52e31885-3619-4185-9bcb-4e8f004a42ad">ALLEN</columnRef>
+          <columnRef ref="fbde8ebe-f1d0-4e41-82d3-92915baabdb5">6</columnRef>
+          <columnRef ref="bb508d71-e082-4aef-9ee0-b964a5fe16a0">1981-02-20</columnRef>
+          <columnRef ref="c869b6bd-6c90-4194-8664-fa8b57357ff1">1600</columnRef>
+          <columnRef ref="4db0a4db-709c-4c80-bc36-f043e8c49116">3</columnRef>
+          <columnRef ref="b1ac3bc7-04b1-41b4-b182-a4002da045c8">1</columnRef>
+        </record>
+        <record id="7ec3c890-aaea-4d4b-a5ad-89cc933d7afa">
+          <columnRef ref="9b948a38-607b-4883-8ee6-bc44dc00a256">3</columnRef>
+          <columnRef ref="0f469616-6432-4a4d-9de5-a10e100668a4">7521</columnRef>
+          <columnRef ref="52e31885-3619-4185-9bcb-4e8f004a42ad">WARD</columnRef>
+          <columnRef ref="fbde8ebe-f1d0-4e41-82d3-92915baabdb5">6</columnRef>
+          <columnRef ref="bb508d71-e082-4aef-9ee0-b964a5fe16a0">1981-02-22</columnRef>
+          <columnRef ref="c869b6bd-6c90-4194-8664-fa8b57357ff1">1250</columnRef>
+          <columnRef ref="4db0a4db-709c-4c80-bc36-f043e8c49116">3</columnRef>
+          <columnRef ref="b1ac3bc7-04b1-41b4-b182-a4002da045c8">1</columnRef>
+        </record>
+        <record id="28837a6d-be6a-4942-9707-94a4010adc3c">
+          <columnRef ref="9b948a38-607b-4883-8ee6-bc44dc00a256">4</columnRef>
+          <columnRef ref="0f469616-6432-4a4d-9de5-a10e100668a4">7566</columnRef>
+          <columnRef ref="52e31885-3619-4185-9bcb-4e8f004a42ad">JONES</columnRef>
+          <columnRef ref="fbde8ebe-f1d0-4e41-82d3-92915baabdb5">9</columnRef>
+          <columnRef ref="bb508d71-e082-4aef-9ee0-b964a5fe16a0">1981-04-02</columnRef>
+          <columnRef ref="c869b6bd-6c90-4194-8664-fa8b57357ff1">2975</columnRef>
+          <columnRef ref="4db0a4db-709c-4c80-bc36-f043e8c49116">2</columnRef>
+          <columnRef ref="b1ac3bc7-04b1-41b4-b182-a4002da045c8">1</columnRef>
+        </record>
+        <record id="273d62d0-2231-4e1c-888c-b475c19036b5">
+          <columnRef ref="9b948a38-607b-4883-8ee6-bc44dc00a256">5</columnRef>
+          <columnRef ref="0f469616-6432-4a4d-9de5-a10e100668a4">7654</columnRef>
+          <columnRef ref="52e31885-3619-4185-9bcb-4e8f004a42ad">MARTIN</columnRef>
+          <columnRef ref="fbde8ebe-f1d0-4e41-82d3-92915baabdb5">6</columnRef>
+          <columnRef ref="bb508d71-e082-4aef-9ee0-b964a5fe16a0">1981-09-28</columnRef>
+          <columnRef ref="c869b6bd-6c90-4194-8664-fa8b57357ff1">1250</columnRef>
+          <columnRef ref="4db0a4db-709c-4c80-bc36-f043e8c49116">3</columnRef>
+          <columnRef ref="b1ac3bc7-04b1-41b4-b182-a4002da045c8">1</columnRef>
+        </record>
+        <record id="7511ee49-f9b8-482b-a974-8a2ebfa85b03">
+          <columnRef ref="9b948a38-607b-4883-8ee6-bc44dc00a256">6</columnRef>
+          <columnRef ref="0f469616-6432-4a4d-9de5-a10e100668a4">7698</columnRef>
+          <columnRef ref="52e31885-3619-4185-9bcb-4e8f004a42ad">BLAKE</columnRef>
+          <columnRef ref="fbde8ebe-f1d0-4e41-82d3-92915baabdb5">9</columnRef>
+          <columnRef ref="bb508d71-e082-4aef-9ee0-b964a5fe16a0">1981-05-01</columnRef>
+          <columnRef ref="c869b6bd-6c90-4194-8664-fa8b57357ff1">2850</columnRef>
+          <columnRef ref="4db0a4db-709c-4c80-bc36-f043e8c49116">3</columnRef>
+          <columnRef ref="b1ac3bc7-04b1-41b4-b182-a4002da045c8">1</columnRef>
+        </record>
+        <record id="f2622432-b82a-43da-b8ff-16344c7f1dcc">
+          <columnRef ref="9b948a38-607b-4883-8ee6-bc44dc00a256">7</columnRef>
+          <columnRef ref="0f469616-6432-4a4d-9de5-a10e100668a4">7782</columnRef>
+          <columnRef ref="52e31885-3619-4185-9bcb-4e8f004a42ad">CLARK</columnRef>
+          <columnRef ref="fbde8ebe-f1d0-4e41-82d3-92915baabdb5">9</columnRef>
+          <columnRef ref="bb508d71-e082-4aef-9ee0-b964a5fe16a0">1981-06-09</columnRef>
+          <columnRef ref="c869b6bd-6c90-4194-8664-fa8b57357ff1">2450</columnRef>
+          <columnRef ref="4db0a4db-709c-4c80-bc36-f043e8c49116">1</columnRef>
+          <columnRef ref="b1ac3bc7-04b1-41b4-b182-a4002da045c8">1</columnRef>
+        </record>
+        <record id="bbfac8b8-4e4d-4995-bd09-c3577529fbed">
+          <columnRef ref="9b948a38-607b-4883-8ee6-bc44dc00a256">8</columnRef>
+          <columnRef ref="0f469616-6432-4a4d-9de5-a10e100668a4">7788</columnRef>
+          <columnRef ref="52e31885-3619-4185-9bcb-4e8f004a42ad">SCOTT</columnRef>
+          <columnRef ref="fbde8ebe-f1d0-4e41-82d3-92915baabdb5">4</columnRef>
+          <columnRef ref="bb508d71-e082-4aef-9ee0-b964a5fe16a0">1982-12-09</columnRef>
+          <columnRef ref="c869b6bd-6c90-4194-8664-fa8b57357ff1">3000.0</columnRef>
+          <columnRef ref="4db0a4db-709c-4c80-bc36-f043e8c49116">2</columnRef>
+          <columnRef ref="b1ac3bc7-04b1-41b4-b182-a4002da045c8">1</columnRef>
+        </record>
+        <record id="e8ed707a-9bf9-4411-8a2b-b58a12017cee">
+          <columnRef ref="9b948a38-607b-4883-8ee6-bc44dc00a256">9</columnRef>
+          <columnRef ref="0f469616-6432-4a4d-9de5-a10e100668a4">7839</columnRef>
+          <columnRef ref="52e31885-3619-4185-9bcb-4e8f004a42ad">KING</columnRef>
+          <columnRef ref="fbde8ebe-f1d0-4e41-82d3-92915baabdb5">NULL</columnRef>
+          <columnRef ref="bb508d71-e082-4aef-9ee0-b964a5fe16a0">1981-11-17</columnRef>
+          <columnRef ref="c869b6bd-6c90-4194-8664-fa8b57357ff1">5000</columnRef>
+          <columnRef ref="4db0a4db-709c-4c80-bc36-f043e8c49116">1</columnRef>
+          <columnRef ref="b1ac3bc7-04b1-41b4-b182-a4002da045c8">1</columnRef>
+        </record>
+        <record id="da68a348-b457-4418-9fe8-0a9c03cf5ea6">
+          <columnRef ref="9b948a38-607b-4883-8ee6-bc44dc00a256">10</columnRef>
+          <columnRef ref="0f469616-6432-4a4d-9de5-a10e100668a4">7844</columnRef>
+          <columnRef ref="52e31885-3619-4185-9bcb-4e8f004a42ad">TURNER</columnRef>
+          <columnRef ref="fbde8ebe-f1d0-4e41-82d3-92915baabdb5">6</columnRef>
+          <columnRef ref="bb508d71-e082-4aef-9ee0-b964a5fe16a0">1981-09-08</columnRef>
+          <columnRef ref="c869b6bd-6c90-4194-8664-fa8b57357ff1">1500</columnRef>
+          <columnRef ref="4db0a4db-709c-4c80-bc36-f043e8c49116">3</columnRef>
+          <columnRef ref="b1ac3bc7-04b1-41b4-b182-a4002da045c8">1</columnRef>
+        </record>
+        <record id="5c9aad71-ed2a-4653-a586-fa32ef2517e0">
+          <columnRef ref="9b948a38-607b-4883-8ee6-bc44dc00a256">11</columnRef>
+          <columnRef ref="0f469616-6432-4a4d-9de5-a10e100668a4">7876</columnRef>
+          <columnRef ref="52e31885-3619-4185-9bcb-4e8f004a42ad">ADAMS</columnRef>
+          <columnRef ref="fbde8ebe-f1d0-4e41-82d3-92915baabdb5">8</columnRef>
+          <columnRef ref="bb508d71-e082-4aef-9ee0-b964a5fe16a0">1983-01-12</columnRef>
+          <columnRef ref="c869b6bd-6c90-4194-8664-fa8b57357ff1">1100</columnRef>
+          <columnRef ref="4db0a4db-709c-4c80-bc36-f043e8c49116">2</columnRef>
+          <columnRef ref="b1ac3bc7-04b1-41b4-b182-a4002da045c8">1</columnRef>
+        </record>
+        <record id="4c23cfb5-7caa-490e-b856-09d7e20f09e3">
+          <columnRef ref="9b948a38-607b-4883-8ee6-bc44dc00a256">12</columnRef>
+          <columnRef ref="0f469616-6432-4a4d-9de5-a10e100668a4">7900</columnRef>
+          <columnRef ref="52e31885-3619-4185-9bcb-4e8f004a42ad">JAMES</columnRef>
+          <columnRef ref="fbde8ebe-f1d0-4e41-82d3-92915baabdb5">6</columnRef>
+          <columnRef ref="bb508d71-e082-4aef-9ee0-b964a5fe16a0">1981-12-03</columnRef>
+          <columnRef ref="c869b6bd-6c90-4194-8664-fa8b57357ff1">950</columnRef>
+          <columnRef ref="4db0a4db-709c-4c80-bc36-f043e8c49116">3</columnRef>
+          <columnRef ref="b1ac3bc7-04b1-41b4-b182-a4002da045c8">1</columnRef>
+        </record>
+        <record id="7e8bdcf4-e091-44d8-bfa0-1ce53fe1357c">
+          <columnRef ref="9b948a38-607b-4883-8ee6-bc44dc00a256">13</columnRef>
+          <columnRef ref="0f469616-6432-4a4d-9de5-a10e100668a4">7902</columnRef>
+          <columnRef ref="52e31885-3619-4185-9bcb-4e8f004a42ad">FORD</columnRef>
+          <columnRef ref="fbde8ebe-f1d0-4e41-82d3-92915baabdb5">4</columnRef>
+          <columnRef ref="bb508d71-e082-4aef-9ee0-b964a5fe16a0">1981-12-03</columnRef>
+          <columnRef ref="c869b6bd-6c90-4194-8664-fa8b57357ff1">3000</columnRef>
+          <columnRef ref="4db0a4db-709c-4c80-bc36-f043e8c49116">2</columnRef>
+          <columnRef ref="b1ac3bc7-04b1-41b4-b182-a4002da045c8">1</columnRef>
+        </record>
+        <record id="00c31653-d729-4e3d-ba18-d27f5632721c">
+          <columnRef ref="9b948a38-607b-4883-8ee6-bc44dc00a256">14</columnRef>
+          <columnRef ref="0f469616-6432-4a4d-9de5-a10e100668a4">7934</columnRef>
+          <columnRef ref="52e31885-3619-4185-9bcb-4e8f004a42ad">MILLER</columnRef>
+          <columnRef ref="fbde8ebe-f1d0-4e41-82d3-92915baabdb5">7</columnRef>
+          <columnRef ref="bb508d71-e082-4aef-9ee0-b964a5fe16a0">1982-01-23</columnRef>
+          <columnRef ref="c869b6bd-6c90-4194-8664-fa8b57357ff1">1300</columnRef>
+          <columnRef ref="4db0a4db-709c-4c80-bc36-f043e8c49116">1</columnRef>
+          <columnRef ref="b1ac3bc7-04b1-41b4-b182-a4002da045c8">1</columnRef>
+        </record>
+      </tableRef>
+    </dataSet>
+  </dataSets>
+  <view:diagramPresentations xmlns:view="http://jiemamy.org/xml/ns/view">
+    <view:diagramPresentation id="fec2a389-88e3-4018-82c3-2595f765fd11">
+      <name>default</name>
+      <view:mode>PHYSICAL</view:mode>
+      <view:level>ATTRTYPE</view:level>
+      <view:nodeProfiles>
+        <view:nodeProfile id="88024377-86f7-4f6c-ad73-9547fa07bbdb">
+          <view:nodeObjectRef ref="b0eb61af-8f86-47ab-bde4-bc4fc9bdc47a"/>
+          <view:boundary height="-1" width="-1" x="79" y="159"/>
+        </view:nodeProfile>
+        <view:nodeProfile id="7fbfe69b-6562-4c95-beb2-116329171e5f">
+          <view:nodeObjectRef ref="d492ab23-b213-4cb3-bc50-3c865eb1b59d"/>
+          <view:boundary height="-1" width="-1" x="441" y="114"/>
+        </view:nodeProfile>
+      </view:nodeProfiles>
+      <view:connectionProfiles>
+        <view:connectionProfile id="d99ecf79-d065-48ce-bff8-9e0f83e4ffad">
+          <view:connectionObjectRef ref="441c5fe6-08ba-49ba-8ca7-3e5cc9e00c97"/>
+        </view:connectionProfile>
+      </view:connectionProfiles>
+    </view:diagramPresentation>
+  </view:diagramPresentations>
+</jiemamy>



Jiemamy-notify メーリングリストの案内
Zurück zum Archiv-Index