Add support for transforming a property set after its contents

This change adds support for transforming a property set after its
contents. This allows a transform to recursively prune empty property
sets that were created for a module.

The transformPropertySet method was renamed to
transformPropertySetBeforeContents and a new
transformPropertySetAfterContents method was added.

Bug: 148933848
Bug: 153306490
Test: m nothing
Merged-In: Ia198d47e042b98c69406db4bc12859869816a387
Change-Id: Ia198d47e042b98c69406db4bc12859869816a387
diff --git a/sdk/bp_test.go b/sdk/bp_test.go
index 4414ee9..f89f38c 100644
--- a/sdk/bp_test.go
+++ b/sdk/bp_test.go
@@ -31,13 +31,20 @@
 	return value, tag
 }
 
-func (t removeFredTransformation) transformPropertySet(name string, propertySet *bpPropertySet, tag android.BpPropertyTag) (*bpPropertySet, android.BpPropertyTag) {
+func (t removeFredTransformation) transformPropertySetBeforeContents(name string, propertySet *bpPropertySet, tag android.BpPropertyTag) (*bpPropertySet, android.BpPropertyTag) {
 	if name == "fred" {
 		return nil, nil
 	}
 	return propertySet, tag
 }
 
+func (t removeFredTransformation) transformPropertySetAfterContents(name string, propertySet *bpPropertySet, tag android.BpPropertyTag) (*bpPropertySet, android.BpPropertyTag) {
+	if len(propertySet.properties) == 0 {
+		return nil, nil
+	}
+	return propertySet, tag
+}
+
 func TestTransformRemoveProperty(t *testing.T) {
 
 	helper := &TestHelper{t}