src/FileAttributeFinder.h
branchv_0
changeset 5 ec661baf433a
parent 4 d44ed75822e7
child 6 35607c973cf5
--- a/src/FileAttributeFinder.h	Wed Jan 16 17:23:05 2019 +0100
+++ b/src/FileAttributeFinder.h	Wed Jan 16 17:48:06 2019 +0100
@@ -82,8 +82,12 @@
 
 	virtual vector<AttributeMetadata> toMetadata(const RequestedField& field) override {
 		if (field.group == RequestedField::GROUP_FILE) {
-			if (field.name == FIELD_SIZE) return { AttributeMetadata{field.name, TypeId::INTEGER}};
-			else return { AttributeMetadata{field.name, TypeId::STRING}};
+			vector<AttributeMetadata> metadata;
+			for (string_t alias : field.getAliases()) {
+				if (field.name == FIELD_SIZE) metadata.push_back(AttributeMetadata{alias, TypeId::INTEGER});
+				else metadata.push_back(AttributeMetadata{alias, TypeId::STRING});
+			}
+			return metadata;
 		} else {
 			return {};
 		}
@@ -100,28 +104,30 @@
 
 	virtual void writeField(RelationalWriter* writer, const RequestedField& field) override {
 		if (field.group == RequestedField::GROUP_FILE) {
-			if (field.name == FIELD_NAME) {
-				writer->writeAttribute(currentFile.filename().wstring());
-			} else if (field.name == FIELD_PATH_ORIGINAL) {
-				writer->writeAttribute(currentFile.wstring());
-			} else if (field.name == FIELD_PATH_ABSOLUTE) {
-				writer->writeAttribute(fs::absolute(currentFile).wstring());
-			} else if (field.name == FIELD_PATH_CANONICAL) {
-				writer->writeAttribute(fs::canonical(currentFile).wstring());
-			} else if (field.name == FIELD_TYPE) {
-				writer->writeAttribute(getType(currentFile));
-			} else if (field.name == FIELD_SIZE) {
-				integer_t size = fs::is_regular_file(currentFile) ? fs::file_size(currentFile) : 0;
-				writer->writeAttribute(&size, typeid (size));
-			} else if (field.name == FIELD_OWNER) {
-				if (currentOwner.empty()) fetchOwner(currentFile, currentOwner, currentGroup);
-				writer->writeAttribute(currentOwner);
-			} else if (field.name == FIELD_GROUP) {
-				if (currentOwner.empty()) fetchOwner(currentFile, currentOwner, currentGroup);
-				writer->writeAttribute(currentGroup);
-			} else {
-				// TODO: should not happend; check supported attributes in toMetadata()?
-				writer->writeAttribute(L"");
+			for (string_t alias : field.getAliases()) {
+				if (field.name == FIELD_NAME) {
+					writer->writeAttribute(currentFile.filename().wstring());
+				} else if (field.name == FIELD_PATH_ORIGINAL) {
+					writer->writeAttribute(currentFile.wstring());
+				} else if (field.name == FIELD_PATH_ABSOLUTE) {
+					writer->writeAttribute(fs::absolute(currentFile).wstring());
+				} else if (field.name == FIELD_PATH_CANONICAL) {
+					writer->writeAttribute(fs::canonical(currentFile).wstring());
+				} else if (field.name == FIELD_TYPE) {
+					writer->writeAttribute(getType(currentFile));
+				} else if (field.name == FIELD_SIZE) {
+					integer_t size = fs::is_regular_file(currentFile) ? fs::file_size(currentFile) : 0;
+					writer->writeAttribute(&size, typeid (size));
+				} else if (field.name == FIELD_OWNER) {
+					if (currentOwner.empty()) fetchOwner(currentFile, currentOwner, currentGroup);
+					writer->writeAttribute(currentOwner);
+				} else if (field.name == FIELD_GROUP) {
+					if (currentOwner.empty()) fetchOwner(currentFile, currentOwner, currentGroup);
+					writer->writeAttribute(currentGroup);
+				} else {
+					// TODO: should not happend; check supported attributes in toMetadata()?
+					writer->writeAttribute(L"");
+				}
 			}
 		}
 	}